我有以下
$().ready(function() {
$("input[name^=totalRent_]").each(function()
{ var input = $(this);
var name = input.attr('name');
var num = /\d+$/.exec(name)[0];
我的html表单有:
<input type="text" name="totalRent_1" value="" /> <br />
<input type="hidden" name="totalRent_1_hidden" /><br />
<hr />
<input type="text" name="totalRent_2" value="" /> <br />
<input type="hidden" name="totalRent_2_hidden" /><br />
<hr />
<input type="text" name="totalRent_3" value="" /> <br />
<input type="hidden" name="totalRent_3_hidden" /><br />
<hr />
现在,我收到一条javascript错误说: /\d+$/.exec(name)为空
每个函数都附加到(“input [name ^ = totalRent_]”)。我需要做什么,以便只附加到total_rent而不是使用totalRent _..._隐藏?
提前致谢。
答案 0 :(得分:1)
如果您只想选择文字输入而不是隐藏文字输入,请将选择器更改为按multiple attributes(名称和类型)进行过滤:
$('input[name^=totalRent_][type=text]')
或者您可以在每个回调函数上检查元素的type属性:
$('input[name^=totalRent_]').each(function(){
var input = $(this);
if (input.attr('type') == 'text'){
var name = input.attr('name');
var num = /\d+$/.exec(name)[0];
}
});