我有多个表单输入元素。我想为每个属性添加pattern
属性和title
属性,但不是手动添加,我想动态添加相同的pattern
和title
每个表单输入使用JavaScript / jQuery。
这就是表单输入字段现在的样子:
<input type="text" class="form-control" id="paycheck" />
<input type="text" class="form-control" id="investments" />
<input type="text" class="form-control" id="otherIncome" />
作为最终结果,我希望每个表单输入看起来如下所示:
<input pattern="\d*\.?\d*" title="blah blah blah" type="text" class="form-control" id="paycheck" />
etc...
作为示例,我为pattern属性尝试了以下内容,但它们都不起作用:
$( "input" ).attr("pattern", '\d*\.?\d*');
$( "input" ).attr("pattern", \d*\.?\d* );
$( ".formClass input" ).attr("pattern", '\d*\.?\d*');
$( "input" ).prop("pattern", '\d*\.?\d*');
$( "input" ).prop("pattern", \d*\.?\d* );
$( ".formClass input" ).prop("pattern", '\d*\.?\d*');
...imagine something similar for the title attribute...
答案 0 :(得分:7)
最后,我发现语法是正确的。代码中的其他地方发生了一个错误,导致该语句无法运行。只是表明你应该始终确保代码中其他地方的一切都很好。
然而,我确实从中学到了一些我会为其他人注意的事情:
.attr()
函数将动态添加您指定的任何属性,因此您无需先在表单元素中添加pattern=""
,以便添加或更改值。正则表达式最初是\d*\.?\d*
但是在DOM中它显示为d*.?d*
所以当通过jQuery发送正则表达式时,我转义了反斜杠,如下所示:\\d*\\.?\\d*
。