我有一些动态构建的表单和归属ID。 ID看起来像id='send_1'... id="send_2"...
通常它只会发布一个表单,但我不知道将创建多少表单,因此我需要一个通用的jQuery函数来完成工作。目前,下面的代码只适用于一个ID。所以我认为必须可以在选择器中使用while
或foreach
之类的东西进行循环,如果存在这样的话?
$(document).on("submit", "#paypal", function(e){
e.preventDefault();
if ( /\,/.test( $('#send_1').val() ) ) {
$('#send_1').val($('#send_1').val().replace(/,/g, '.'));
} else {
alert('no comma');
}
return false;
});
那么,当我不知道有多少表格存在,甚至不想仅仅改变#send_X
时,要编写相同代码的数百倍时,如何才能执行这个foreach _x
? / p>
如果有人可以提供帮助,我真的很感激。
答案 0 :(得分:2)
如果您需要循环解决方案,请参阅下面的代码可能会有帮助
$(document).on("submit", "#paypal", function(e){
e.preventDefault();
var i=1;
$( "li" ).each(function( index ) {
if ( /\,/.test( $('#send_'+i).val() ) ) {
$('#send_'+i).val($('#send_'+i).val().replace(/,/g, '.'));
} else {
alert('no comma');
}
i++;
});
return false;
});
或尝试更改
$('#send_1').val()
与
$( "input[id^='send']" ).val();
可能有用我不确定
请参阅this链接
答案 1 :(得分:0)
你可以使用这样的for loop
(我已经删除你的if
语句来简化):
$(document).on("submit", "#paypal", function(e) {
e.preventDefault();
var n = $("form").length; // get the number of forms
for (var i = 1; i <= n; i++) {
var form = $("#send_" + i); // gives you the form object
}
});
&#13;
演示here
希望这有帮助。
答案 2 :(得分:0)
您可以为提交按钮添加data-x-id,并在获取ID之后添加:
$(document).on("submit", "#paypal", function(e){
e.preventDefault();
var id = $(e.target).attr('data-x-id');
// for minimal work with dom
var element = $('#send_'+id);
var value = element.val();
if ( /\,/.test( value ) ) {
element.val(value.replace(/,/g, '.'));
} else {
alert('no comma');
}
return false;
});