0

基本的に「このテキストフィールドに入力されている場合は、送信ボタンを無効にして、フォームを配信/送信できないようにする」というJqueryを実装しようとしています。

これまで私はこれを思いついたが、それは機能していない

$(document).ready(function(){
$this = $("#inputValue");
 if($this.val().length>0){ 
$('input[type=submit]').attr('disabled', 'disabled');
 }  
});

フォームに入力し、フィールドにテキストを含めると、フォームが送信されないはずですが、何が間違っていますか?

ありがとう

4

4 に答える 4

3

コードは実行時に 1 回だけ実行されます。その後、再度チェックされることはありません。

$(document).ready(function (){
  $("#inputValue").on('change', function (){
    if($(this).val().length > 0){
      $('input[type=submit]').attr('disabled', 'disabled');
    } else {
      $('input[type=submit]').removeAttr('disabled');
    }
  });
});

または、@thomasfedb が提案したように:

$(document).ready(function (){
  $('#inputValue').on('change', function() {
    $("input[type=submit]").prop('disabled', $(this).val().length > 0);
  });
});
于 2013-02-11T13:53:35.620 に答える
1

フィールドを使用しているので、イベントhiddenをバインドする方がよい場合があります。change

$('#inputValue').on('change', function() {
  $('input[type="submit"]').prop('disabled', this.value.length > 0);
}).change();
于 2013-02-11T14:00:41.327 に答える
1

ユーザーがフィールドkeyupに何かを入力するたびにチェックを行うようにイベントをバインドすることをお勧めします。#inputValue

$(document).ready(function() {
    $("#inputValue").on("keyup", function() {
        $("input[type=submit]").prop("disabled", !!$.trim(this.value).length);
    }).trigger("keyup");
});
于 2013-02-11T13:54:32.483 に答える
-2

このコードを使用してみてください。

$('input[type=submit]').attr("disabled", true);
于 2013-02-11T13:54:33.047 に答える