.attr()返回属性名称

时间:2017-05-20 13:03:58

标签: javascript jquery

我有一个html元素:

<input type='text' runat='server' name='RM1' id='RM1' required='5' readonly>

我需要使用jQuery这个属性'required'的值,但是当我运行时

$('#RM1').attr('required')

返回值为"Required",但应为5。 当我跑$('#RM1').attr('id')时,返回RM1。

任何人都知道我做错了什么?

注意:代码由C#生成,runat设置为server

5 个答案:

答案 0 :(得分:4)

required是表单验证的保留属性名称

实现有所不同,但这一个是真或假,“必需”的计算结果为真,此属性根本不需要值,如果属性exists = true,如果not = false,

所以:

<input required >
<!-- returns the same value (truthy) as -->
<input required="23432abc" >

您的解决方案:使用其他属性名称!

答案 1 :(得分:1)

<input>的{​​{1}}属性is of type boolean。它不能保存数值:

  

如果属性存在,则其值必须为空字符串   或者是属性的ASCII不区分大小写匹配的值   规范名称,没有前导或尾随空格。

你写的实际上是invalid HTML(5)

  

错误:元素输入所需属性的值为5。

但是,您的浏览器仍会通过将其解释为require来优雅地处理此错误值。

另请参阅:Setting an attribute named "required" and any value, with JQuery, doesn't work

答案 2 :(得分:0)

使用元素的数据集,例如:

<input type='text' runat='server' name='RM1' id='RM1' data-required='5' readonly>

当您需要检索'data-required'的值时,请执行:

$('#RM').data('required') // returns 5

答案 3 :(得分:0)

这是因为required是一个布尔属性。

如果您想存储自定义数据,可以使用data-属性

示例

&#13;
&#13;
var id = $('#RM1').data('id');

console.log(id);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' runat='server' name='RM1' id='RM1' data-id='5' readonly>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

根据HTML属性引用:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes

保留所需的属性

请使用类似requiredNum的attr,参见示例:

&#13;
&#13;
console.log( $('#RM1').attr('requiredNum') )
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' runat='server' name='RM1' id='RM1' requiredNum='5' readonly>
&#13;
&#13;
&#13;