0

入力ボックスと選択ボックスで自動保存を正常に機能させることができました。テキストエリアに同じプロセスを使用しようとしていますが、うまくいきません。同じプロセスを使用できるかどうかはわかりません。テキストエリアのhtmleditorとしてtinymceも持っているので、それが問題を引き起こしているかどうかはわかりません。

これが私のコードの例です。私は従来の ASP ページ内でこれを行っています。

<textarea id="Com<%=QuesID%>" row= "1" cols= "120" name="Com<%=QuesID%>" QuesID=<%=QuesID%> wrap tabindex="21" rows="10" class="formTxt"><%=TempTxt%></textarea>

次に、ページの下部に:

<script>
$(document).ready(function(){
        $('select').live('change',function () {
                 var itemValue = escape($(this).val());
                var itemName = $(this).attr('name');
                var QuesID = $(this).attr('QuesID');
                var typeID = "select";
                //alert(statusVal);
                $.ajax({
                         type: "POST",
                         url: "PAFormAJAX.asp",
                         data: 'itemValue=' + itemValue + '&itemName=' + itemName + '&QuesID=' + QuesID + '&typeID=' + typeID,
                         success: function(msg) {
                             $('#autosavenotify').text(msg);
                         }
              })
          });

          $('input').live('change',function () {
                 var itemValue = escape($(this).val());
                var itemName = $(this).attr('name');
                var QuesID = $(this).attr('QuesID');
                var typeID = "input";
                //alert(statusVal);
                $.ajax({
                         type: "POST",
                         url: "PAFormAJAX.asp",
                         data: 'itemValue=' + itemValue + '&itemName=' + itemName + '&QuesID=' + QuesID + '&typeID=' + typeID,
                         success: function(msg) {
                             $('#autosavenotify').text(msg);
                         }
              })
          });

          $('textarea').live('change',function () {
                var itemValue = escape($(this).val());
                var itemName = $(this).attr('name');
                var QuesID = $(this).attr('QuesID');
                var typeID = "textarea";
                //alert(statusVal);
                $.ajax({
                         type: "POST",
                         url: "PAFormAJAX.asp",
                         data: 'itemValue=' + itemValue + '&itemName=' + itemName + '&QuesID=' + QuesID + '&typeID=' + typeID,
                         success: function(msg) {
                             $('#autosavenotify').text(msg);
                         }
              })
          });


});
</script>

入力ボックスと選択ボックスの保存は正常に機能していたので、PAFormAjax.asp コードは省略します。このようなテキストエリアで自動保存できますか? そうでない場合、何を変更する必要があるかについてのヒントはありますか?

助けてくれてありがとう!

4

3 に答える 3

1

これは非常に古いjQueryバージョンにのみ有効です。この投稿の最後を参照してください。

.val()入力要素専用で、textareasはを使用します.text()

これは、jQueryが要素のvalue属性をチェックするだけであり、textareasには使用されないためです。

<textarea value="Some text here"></textarea>

それは機能しません。代わりに次のように使用する必要があります。

<textarea>Some text here</textarea>

非常に古いバージョンのjQueryでは、valは単純に次のように定義されていました。これは値に対してのみ機能します(jQuery 1.1.1からの抜粋)。

val: function( val ) {
        return val == undefined ?
            ( this.length ? this[0].value : null ) :
            this.attr( "value", val );
    }
于 2012-04-04T20:23:14.997 に答える
1

使ってみて

encodeURIComponent($(this).text());

テキストエリア用

于 2012-04-04T20:09:57.877 に答える
0

serializeフォーム全体を選択しない理由はありますか?処理ページを適切に処理しますか?http://api.jquery.com/serialize/

$(document).on('change', function () {
  $.ajax({
    type: "POST",
    url: "PAFormAJAX.asp",
    data: $('form').serialize(),
    success: function(msg) {
        $('#autosavenotify').text(msg);
    }
  });
}, 'select, input, textarea');

貼り付けたコードでいくつかの仮定をしています-必要なものを置き換え、可能であれば$(document)よりも優れたセレクターを使用してみてください-.liveを使用していると仮定します。これは、以前のDOMを使用しているためです。何らかの方法で変更されました。

于 2012-04-04T20:18:14.160 に答える