2015-07-21 69 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; 
});