1

「送信」ボタンを使用してフォームを送信するときにデータベースからテキスト入力フィールドに結果を入力し、同時に入力フィールドを編集不可にする必要があるという要件があります。現在、これを行うための JQuery 関数があります。

$(function(){
    $(".makeEditable").click(function(){
        $('input:text').removeAttr("readonly");    
    });
    $(".makeNonEditable").click(function(){
        $('input:text').attr("readonly", "readonly");    
    });               
})

ボタンでテストすると、この関数は正常に機能します。

<input type="button" value="Make Non Editable" class="makeNonEditable" />

ただし、これは送信ボタンでは機能しません。

<input type="submit" value="Search" class="makeNonEditable"/> 

そのため、送信ボタンでは機能せず、通常のボタンでは機能する理由がわかりません。どんな助けでも大歓迎です

4

2 に答える 2

1

あなたの投稿から、あなたのボタンの両方が同じクラスを持っているようですmakeNonEditable

readonlyテキストフィールドに属性をデフォルトとして設定できます

<input type="text" value="" readonly="readonly">

送信ボタンは次のように変わります。

    $(function() {
       $(".makeEditable").click(function() {
            $('input:text').removeAttr("readonly");
       });
       $(".makeNonEditable").click(function(e) {

                // If you submit the for without ajax
                // then just make the text field default readonly="readonly"

            // OR

                // If you submit the form using ajax then use
                // $('input:text').removeAttr("readonly");
                // within success function
       });
   });
于 2012-04-18T10:18:22.530 に答える
0

それが事実かどうかはわかりませんが、送信タイプはフォームのデータを送信してページをリロードします。使用してみてください:

$('#yourForm').submit(function(){
  // do something...
});
于 2012-04-18T13:30:47.610 に答える