2015-07-21 23 views
0

我有几个动态构建的表单和属于ID的。 ID的外观像id='send_1'... id="send_2"...jQuery循环在函数中调用选择器时可能吗?

通常它只会发布一个表单,但我不知道将创建多少个表单,以便我需要一个通用的jQuery函数来完成这项工作。目前下面的代码仅适用于一个ID。所以我认为如果像这样的东西存在,必须有可能在选择器中循环whileforeach

$(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; 
}); 

所以,我怎么能做到这一点的foreach #send_X的时候,我不知道有多少的形式会存在,甚至不想写百倍相同的代码只是改变了_x

如果有人能够帮助,我真的很感激。

+0

将通配符为你工作? http://stackoverflow.com/questions/3697542/is-there-a-wildcard-class-selector – sabithpocker

回答

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链接

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   
 
    } 
 
});

演示here

希望这有助于。

0

您可以添加数据-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; 
});