-1

我有一个 HTML 文件,看起来像这样:

        Input 1: <input type="text" required="false" /><br>
    Input 2: <input type="text" required="true" /> *<br>
    Input 3: <input type="text" required="false" /><br>
    Input 4: <input type="text" required="false" /><br>
    Input 5: <input type="text" required="true" /> *<br>
    Input 6: <input type="text" required="false" /><br>
    Input 7: <input type="text" required="true" /> *<br>
    <input type="button" id="subButton" value="Run" />

这是我的 jQuery 脚本:

$(document).ready(function(){
                $("#subButton").click(function(){

                    //Copy START
                    var setError = false;
                    $.each($(":input"), function(e){
                        if(($(this).attr("required") == "true") && (this.value == "")){
                            setError = true;
                        }
                    });
                    if(setError != false) alert("Not all required fields are filled");
                    //Copy END

                });
            });

如果我将 attr 更改为“类型”,如果我没有填满每个框,它就会起作用。但我想将它与所需的属性一起使用。

任何想法,为什么它不起作用?

感谢帮助

4

3 回答 3

3

required以错误的方式使用。如果是 HTML,应该是这样的:

<input type="text" required />

如果是 XHTML,应该是这样的:

<input type="text" required="required" />

您需要使用 jQuery 访问它$.prop()

if($("input").prop("required")) { ... }

否则,您可以自由地以data-*这种方式使用属性:

data-reqd="yes"

并使用以下方式访问它:

if ($(this).data("reqd") == "yes") { ... }
于 2013-01-30T11:35:04.060 回答
0

采用

data-required="true/false"

然后

if ($(this).data("required")) ...
于 2013-01-30T11:32:55.227 回答
0

required是 s 的官方(不是“自己定义的”)属性<input>,它是布尔值-"false"是无效值。此外,在此使用 jQueryattr会增加一些额外的怪癖,以便您取回 string "required"。更好地使用该required属性,它真正返回一个布尔值。

Input 1: <input type="text" /><br>
Input 2: <input type="text" required /> *<br>
Input 3: <input type="text" /><br>
Input 4: <input type="text" /><br>
Input 5: <input type="text" required="" /> *<br>
Input 6: <input type="text" /><br>
Input 7: <input type="text" required="required" /> *<br>
<input type="button" id="subButton" value="Run" />

<script type="text/javascript">
    $(document).ready(function(){
         $("#subButton").click(function(){
             var setError = false;
             $(":input").each(function(e){
                 if ( this.required && this.value == "" )
                     setError = true;
                 }
             });
             if ( setError )
                 alert("Not all required fields are filled");
         });
     });
</script>
于 2013-01-30T11:40:52.820 回答