【问题标题】:Form and Jquery code not working. Greying out submit button表单和 Jquery 代码不起作用。灰显提交按钮
【发布时间】:2013-01-31 14:29:00
【问题描述】:

我有一个 HTML 订阅表单,它使用(或应该使用)jquery 代码来灰显提交按钮,直到字段 name 被填写。

但是,它不起作用......

有什么错误的线索吗?代码如下:

<head>
<script type="text/javascript">
var $submit = $("input[type=submit]");
if ( $(".subName").length > 0 ) {
   $submit.attr("disabled","disabled");
} else {
   $submit.removeAttr("disabled");
}
</script>
</head>
<body>
<form action="" method="post" id="subscribe" name="subscribe">
<input type="hidden" name="action" value="subscribe">
<label>NAME:</label>
<input type="text" name="name" class="subName" id="sub_first_name">
<label>EMAIL:</label>
<input type="text" name="email" class="subEmail" id="sub_email">
<input type="submit" name="button" value="Subscribe" />
</form>
</body>

谢谢!

-------------- 编辑

<form action="" method="post" id="subscribe" name="subscribe">
<label>NAME:</label>
<input type="text" name="name" class="subName" id="sub_first_name">
<label>EMAIL:</label>
<input type="text" name="email" class="subEmail" id="sub_email">
<input type="submit" name="button" value="Subscribe" />
</form>

JS:

<script type="text/javascript">
$(document).ready(function() {
    var $submit = $("input[type=submit]");
    $('.subName').on('change', function() {
        if ( ! $(".subName").val().length ) {
           $submit.attr("disabled","disabled");
        } else {
           $submit.removeAttr("disabled");
        }
    });
}
</script>

但还是不行:(

【问题讨论】:

  • 是的..你只是在页面加载时检查它..你应该将它绑定到一个事件

标签: jquery forms button submit


【解决方案1】:

除了将它绑定到事件之外,您是否还在标题中包含 jQuery?比如这样:

<script type="text/javascript" src="js/jquery-1.7.1.js"></script>

【讨论】:

    【解决方案2】:
    $(document).ready(function() {
        var $submit = $("input[type=submit]");
        $('.subName').on('change keyup', function() {
            if ( !$(this).val().length ) {
               $submit.attr("disabled","disabled");
            } else {
               $submit.removeAttr("disabled");
            }
        });
    });
    

    【讨论】:

    • 应该是 $(".subName").val().length。 $(".subName").length 将是匹配选择器的元素数,即具有类“subName”
    • 很高兴终于比这里的其他人更快:)。
    • 如果你想让按钮变灰更“响应”,你可以使用 $('.subName').on('change, keyup'), function(){.. .} 并且每次击键都会更新(更改只会在焦点离开我认为的字段时触发)。此外,最好按 id 而不是 class 选择: $('#sub_first_name').on()...
    • 你介意把它写成代码的答案吗?还是在小提琴中?
    • 无法检查,jsfiddle.net 似乎已关闭。但是,我应用了您的建议(请参阅更新的问题),但到目前为止它不起作用......有什么建议吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-10-10
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 2020-08-21
    • 1970-01-01
    相关资源
    最近更新 更多