首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jquery-验证中,如何引用标签中属性的名称?

在Jquery-验证中,如何引用标签中属性的名称?
EN

Stack Overflow用户
提问于 2019-11-25 15:43:07
回答 1查看 54关注 0票数 0

我想使用标签文本作为验证消息。为了做到这一点,我尝试在这里使用$(label[for="nameAttrName"]),代码片段:

代码语言:javascript
复制
$("#myForm").validate({
  rules: {
    NameQuery: "required"
  },
  messages: {
    NameQuery: "Please fill in " + $(`label[for="NameQuery"]`).text()
  }
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/additional-methods.min.js"></script>


<form id="myForm">
  <label for="NameQuery">Name Query </label>
  <input name="NameQuery"/>
  <input type="submit" value="Submit"/>
</form>

问题是,我如何引用for=""位中的属性名,这样就不必显式地编写for="NameQuery"了?像这样

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-26 00:27:05

的问题是,我如何引用for=""位中的属性名,这样就不必显式地编写for="NameQuery"了?

不确定为什么需要一般性地写这个,因为无论如何,您必须在rulesmessages对象中显式地列出每个字段。

但是,您可以相对于要验证的字段一般地针对前面的label元素.

代码语言:javascript
复制
"Please fill in " + $(element).prev('label').text();

它必须从function()内部返回,以便从插件中获得element参数.

代码语言:javascript
复制
....
required: function(params, element) {
    return "Please fill in " + $(element).prev('label').text();
}
....

演示:

代码语言:javascript
复制
$("#myForm").validate({
  rules: {
    NameQuery: {
       required: true
    }
  },
  messages: {
    NameQuery: {
        required: function(params, element) {
            return "Please fill in " + $(element).prev('label').text();
        }
    }
  }
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/additional-methods.min.js"></script>


<form id="myForm">
  <label for="NameQuery">Name Query </label>
  <input type="text" name="NameQuery" />
  <input type="submit" value="Submit"/>
</form>

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

https://stackoverflow.com/questions/59035414

复制
相关文章

相似问题

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