首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Specefic类遍历表单元素

使用Specefic类遍历表单元素
EN

Stack Overflow用户
提问于 2011-05-07 19:13:19
回答 3查看 4.5K关注 0票数 1

实际上,我正在验证一个有文本,选择,下拉列表等字段的表单。我有一些必填的字段,并且我给了它们一个必需的类(只有文本字段)。现在,我想遍历所有的表单元素,并检查该元素是否有一个必需的类,然后在该字段后面附加一个*。我已经使用了each()方法,但是我不能让它完全按照我想要的方式工作。

我的代码如下所示:

代码语言:javascript
运行
复制
function validate_form() {
    $("#mysubmit").each(function() {
        if($("form :text.required:text").val() == "" )
        {
            $("form :text.required:text").html("*");
            return false;
        }
        return true;
    });
}

其中mysubmit是我的提交按钮的id。

我想一个接一个地遍历DOM元素。有谁可以帮助我,我如何验证此表单。谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-05-07 22:09:55

正如你所说的,你想要追加 '*‘。你想把它插进去。

我们将使用class="validation"创建一个跨度,如下所示:

代码语言:javascript
运行
复制
function validate_form() {
    var valid = true;
    $('form .required:text').each(function(){
       var $spanVal = $(this).next(); //Try to get the validation message (who has '*')
       if ($(this).val()!="" && $spanVal.is("span.validation")){ //If text has value
           $spanVal.remove(); //remove the asterisk
       }else if($(this).val()==""){ //If text is empty           
           if(!$spanVal.is("span.validation")){ //Create a validation message if it doesn't exist
              $('<span class="validation">*</span>').insertAfter(this);
           }
           valid = false;
       } 
    });
    return valid;
}

希望这能有所帮助。干杯。

票数 1
EN

Stack Overflow用户

发布于 2011-05-07 19:20:12

您可以使用.after在所需的元素后面附加一个*,如下所示:

代码语言:javascript
运行
复制
$('.required').after('<span>*</span>');

要遍历所有必填字段,您将执行以下操作:

代码语言:javascript
运行
复制
$(.required).each(function(){
    //do something with this
    //inside this function 'this' is in turn each of the selected elements
    alert($(this).val());
});

jQuery.each遍历应用它的选定内容中的所有元素。在本例中,$("#mysubmit")只是一个元素(我假设是submit按钮)。没有必要这样做。

以下是代码的重写版本:

代码语言:javascript
运行
复制
function validate_form() {
    var valid = true;
    $('form .required').each(function(){
       if ($(this).val()==''){
         $(this).after('<span>*</span>');
         valid = false;
       }
    });
    return valid;
}

备注:

不需要提交,因为你的函数内部的逻辑不依赖于提交button

  • Returning,来自.each函数的值,就像你尝试的那样,不会像你期望的那样工作。如果您从.each函数返回false,它将简单地停止:text.required:text")将匹配所有具有.required类的文本字段,而不是像您预期的那样只匹配一个。
票数 0
EN

Stack Overflow用户

发布于 2016-11-30 22:39:08

这就是我如何解决我的问题

在if语句中,删除警报并.append * :)认为它应该可以工作

https://stackoverflow.com/a/40891000/5185974

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5920661

复制
相关文章

相似问题

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