我有一个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
。
答案 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-
属性
示例强>
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;
答案 4 :(得分:0)
根据HTML属性引用:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
保留所需的属性
请使用类似requiredNum
的attr,参见示例:
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;