首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery表单验证

Jquery表单验证
EN

Stack Overflow用户
提问于 2013-07-30 08:19:35
回答 5查看 217关注 0票数 0

我一直在查看Stack上的一些帖子,试图获得一个简单的表单验证工作,但它所做的只是禁用了我的提交按钮。这意味着一旦他们在输入字段中输入文本,就会删除禁用程序。

到目前为止

Jquery

代码语言:javascript
复制
$('input:submit').attr('disabled',true);

$('input').change(function(){
    if($('input').val() != ''){ 
        $('input:submit').attr('disabled',true);
    } else {
        $('input:submit').removeAttr('disabled');
});

代码语言:javascript
复制
<form action="send.php" method="post">
    <input id="name" name="name" type="text" required placeholder="Name"/>
    <input id="email" name="email" type="email" required placeholder="Enter a valid email address"/>
    <input name="submit" id="subscribe" type="submit" value="Subscribe for free"/>
</form>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-30 08:38:59

您应该使用添加到所有所需字段的类来查找每个输入。如果用户更改其中一个,但仍然没有输入,则在禁用时,按钮:

jQuery:

代码语言:javascript
复制
   $('input.required').change(function(){
        if($(this).val() != ''){ 
             $(this).removeClass('required',true);
        }else{
             $(this).addClass('required',true);
        }

        //check the length to enable or disable submit
        if($(".required").length == 0){ 
             $('#subscribe').attr('disabled',false);
        }else{
             $('#subscribe').attr('disabled',true);
        }
    }); 

html:

代码语言:javascript
复制
 <form action="send.php" method="post">
            <input id="name" name="name" type="text" class="required" placeholder="Name" />
            <input id="email" name="email" type="email" class="required" placeholder="Enter a valid email address" />
            <input name="submit" id="subscribe" type="submit" value="Subscribe for free" />
</form>

这是一把小提琴

但是,请记住,此解决方案仅适用于启用了javascript。

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 08:24:01

我认为你需要改变你在if-else中的陈述,如果你正在尝试一些不同的东西,请告诉我--

代码语言:javascript
复制
$('input:submit').attr('disabled',true);

        $('input').change(function(){
            if($('input').val() != ''){ 
                  $('input:submit').removeAttr('disabled');
            }else{
                $('input:submit').attr('disabled',true);
            }
        });

小提琴- http://jsfiddle.net/UcQhw/

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 08:24:18

你得在“如果-否则”块里交换语句。还可以使用$(this)获取事件的源。

现场演示

代码语言:javascript
复制
  $('input:submit').attr('disabled', true);
   $('input').change(function () {
       if ($(this).val() !== '') {
           $('input:submit').attr('disabled', false);
       } else {
           $('input:submit').prop('disabled', true);
       }
   });

如果要检查所有文本字段都不能为空,则必须遍历所有输入。您应该指定class来获取指定的文本框,而不是将所有内容都放在页面上。您可以使用类选择器按类获取元素。

现场演示

代码语言:javascript
复制
$('input:submit').attr('disabled', true);
$('.cls').change(function () {
   blankFields = $('.cls').filter(function () {
       return this.value == '';
   });
   if (blankFields.length === 0) $('input:submit').attr('disabled', false);
   else $('input:submit').prop('disabled', true);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17941779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档