2014-10-05 68 views
-1

我在html页面中有两种形式。我试图启用和禁用第一种形式的提交按钮,当输入值不是空的相同的形式。我正在使用jQuery来做到这一点,但它只是禁用提交按钮,并没有在文本输入(键盘按下)响应。请对我的代码来看看......jquery,我如何启用多种形式之间的表单按钮

HTML代码:

  <form role="form" method="post" name="music" id="musicPost"> 
       <div class="form-group"> 
        <label for="name">Artist Name</label> 
        <div class="input-group"> 
          <div class="input-group-addon"><span class="glyphicon glyphicon-user"></span></div> 
          <input class="form-control" type="text" maxlength="25" id="name" name="txtname" placeholder="Enter artist name"> 
        </div> 
       </div> 
       <div class="modal-footer" style="padding-left: 0px; padding-right: 0px;"> 
       <button type="submit" id="register" class="btn btn-success pull-right" value="post-music"> 
        <span class="glyphicon glyphicon-circle-arrow-right"></span> 
        <span class="text">Post</span> 
       </button> 
       </div> 
      </form> 
     <form role="form" method="post" name="music1" id="musicPost1"> 
       <div class="form-group"> 
        <label for="name">Artist Name</label> 
        <div class="input-group"> 
          <div class="input-group-addon"><span class="glyphicon glyphicon-user"></span></div> 
          <input class="form-control" type="text" maxlength="25" id="name1" name="txtname1" placeholder="Enter artist name"> 
        </div> 
       </div> 
       <div class="modal-footer" style="padding-left: 0px; padding-right: 0px;"> 
       <button type="submit" id="register1" class="btn btn-success pull-right" value="post-music"> 
        <span class="glyphicon glyphicon-circle-arrow-right"></span> 
        <span class="text">Post</span> 
       </button> 
       </div> 
      </form> 

jQuery代码:

jQuery("document").ready(function ($) { 
var $input = $('input:text'), 
    $register = $('form#musicPost #register'); 

$register.attr('disabled', true); 
$('form#musicPost').keyup(function() { 
    var trigger = false; 
    $input.each(function() { 
     if (!$(this).val()) { 
      trigger = true; 
     } 
    }); 
    trigger ? $register.attr('disabled', true) : $register.removeAttr('disabled'); 
}); 

});

回答

0

您需要将keyup附加到您的输入元素,而不是您的表单元素。

$('#musicpost input').keyup(function() {...} 

我也想知道,如果你只通过表单的输入域在KEYUP发生,而不是在页面上的所有输入字段需要周期。

var trigger = false; 
$(this).find('input[type=text]').each(function() { 
    if (!$(this).val()) { 
     trigger = true; 
    } 
}); 

最后,可以考虑使用change代替keyup

相关问题