Jquery 验证不为空并且在表单中 URL

Jquery validating not empty and is URL in forms

我正在使用以下 fiddle 创建一个表单并检查两个字段是否为空以及第二个字段是否有效 URL。 http://jsfiddle.net/nc6NW/366/

<form method=post>
     <input type="text" id='first_name'>
     <input type="url" id='second_name'>
     <input type="submit" value="Submit" id="submit" disabled>
</form>

<script>
$(':text').keyup(function() {
     if($('#first_name').val() != "" && $('#second_name').val() != "") {
           $('#submit').removeAttr('disabled');
}    else {
           $('#submit').attr('disabled', true);   
     }
});

</script>

然而,只有当您 return 在添加 URL

之后修改第一个字段时才有效

您正在收听 ':text' 键盘输入。因为您的第二个输入是 'url' 类型,所以它不会触发该函数。

这就是为什么你必须回到第一个输入。

事件仅在第一个输入字段的按键时被触发。给第二个字段添加一个类似的keyup事件就可以了

:text 是问题所在。

将您的jQuery更新为以下内容

$("input").keyup(function() {
   if($('#first_name').val() != "" && $('#second_name').val() != "") {
      $('#submit').removeAttr('disabled');
   } else {
      $('#submit').attr('disabled', true);   
   }
});