2017-02-16 180 views
0

我有一个用户输入电子邮件的输入框。如果输入是!= 0,我希望我的脚本在我的DOM中禁用按钮。但是,如果它发生变化并且值变为> 0,我希望它启用我的按钮。事件监听器.change没有响应

不幸的是没有任何反应。

这是我到目前为止有:

<script src="~/Scripts/jquery-3.1.1.js"> 
    $(document).ready(function(){ 
     $("#input1").change(function(){ 
      if($(this).val().length > 0){ 
       $("#emailSignup").prop('disabled', false); 
      } 
      else{ 
       $("#emailSignup").prop('disabled', true); 
      } 
     }) 
    }); 
</script> 

HTML:

@Html.TextBoxFor(Model => Model.Email, new { id="input1", Class = "form-control", Style = "display:inline-block; max-width:200px", Placeholder="[email protected]", type="email"}) 
<button disabled type="submit" class="btn btn-default" style="display:inline-block" id="emailSignup">Tilmeld</button> 
+0

是动态添加的输入,如果这样使用事件deledation – guradio

+0

它是动态添加是的,不是吗?回复 –

+0

你看看控制台日志吗?也许这里有一些错误信息。 –

回答

0

你可以重点用起来反而可能:

<script src="~/Scripts/jquery-3.1.1.js"> 
    $(document).on('keyup', '#input1', function() { 
     if($(this).val().length > 0){ 
      $("#emailSignup").removeAttr('disabled'); 
     } else { 
      $("#emailSignup").prop('disabled', true); 
     } 
    }); 
</script> 
0

难道你试试这个脚本?谢谢。 您必须定义变量,然后测试该功能。

@Html.TextBoxFor(Model => Model.Email, new { id="input1", Class = "form-control", Style = "display:inline-block; max-width:200px", Placeholder="[email protected]", type="email"}) 
<button disabled="disabled" type="submit" class="btn btn-default" style="display:inline-block" id="emailSignup">Tilmeld</button> 

的jQuery:

$(document).ready(function(){ 
    $('.emailSignup').attr('disabled',true); 
    $('#message').keyup(function(){ 
     if($(this).val().length !=0) 
      $('.emailSignup').attr('disabled', false);    
     else 
      $('.emailSignup').attr('disabled',true); 
    }) 
}); 
+0

这不应该有任何不同。 - 它不起作用,不幸的是 –

+0

@JeppeChristensen,你可以分享#input1的HTML代码吗? – FreedomPride

+0

我更新了我的问题:-) –