如何将JavaScript应用于重复自身的DOM元素(本例中是表单)
How to apply JavaScript on a DOM element(a form in this case) that repeat it self
我创建了JavaScript来针对表单和它的元素,一切都很好,直到表单在页面上出现两次,就像这个页面一样。在这样的页面上,JavaScript代码只适用于第一个表单。我甚至试过循环,但是…?所以帮帮我…下面是代码…
HTML<div class="row">
<div class="small-12 columns" id="subscribe_form">
<span class="errors" id="subscriber_names_error"></span>
<input type="text" id="subscriber_names" placeholder="your names if you wish..."/>
<span class="errors" id="subscriber_email_error"></span>
<input type="email" id="subscriber_email" placeholder="your e-mail please!"/>
<span class="errors" id="subscribe_btn_error"></span>
<input type="submit" id="subscribe_btn" value="SUBSCRIBE" class="submit_btn">
</div>
JavaScript var subscriber_names = "";
var subscriber_email = "";
$("#subscriber_names").keyup(function(){
var val = $(this).val();
if(val == ""){
$("#subscriber_names_error").html("<p style='color: #ffffff; background: #ff0000'>Fill in your names please.</p>");
subscriber_names = "";
} else if(val.length < 5){
$("#subscriber_names_error").html("<p style='color: #ffffff; background: #ff0000'>Names to short.</p>");
subscriber_names = "";
} else {
$("#subscriber_names_error").html("");
subscriber_names = val;
}
});
$("#subscriber_email").keyup(function(){
var val = $(this).val();
var re = /^(([^<>()[']''.,;:'s@'"]+('.[^<>()[']''.,;:'s@'"]+)*)|('".+'"))@(('[[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'])|(([a-zA-Z'-0-9]+'.)+[a-zA-Z]{2,}))$/;
if(val == ""){
$("#subscriber_email_error").html("<p style='color: #ffffff; background: #ff0000'>Fill in your e-mail please.</p>");
subscriber_email = "";
} else if(re.test(val)){
$("#subscriber_email_error").html("");
subscriber_email = val;
} else {
$("#subscriber_email_error").html("<p style='color: #ffffff; background: #ff0000'>Invalid E-mail.</p>");
subscriber_email = "";
}
});
$("#subscribe_btn").click(function(){
var subscribe_form_div = $("#subscribe_form");
if(subscriber_names != "" && subscriber_email != ""){
$.ajax({
type: 'POST',
url: 'ajax.php',
data: 'subscriber_email='+subscriber_email+'&subscriber_names='+subscriber_names,
success: function(message){
subscribe_form_div.html("<img src='imgs/loading_two.gif' />");
$("#subscribe_form").html(message);
}
});
} else {
$("#subscribe_btn_error").html("<p style='color: #ffffff; background: #ff0000'>Fill in correctly please.</p>");
subscriber_email = ""
}
});
注意:电子邮件验证的REGEX从这里
不建议在同一页面中有两个具有相同ID的项,因为它使元素唯一,当我在一个页面中有相同的表单两次时,我使用不同的表单ID和相同的类名进行字段的工作,然后您可以使用表单作为验证的参考。
我希望我已经回答了你的问题
相关文章:
- Javascript更新孙窗口中的表单元素
- 阻止表单元素提交
- 根据select选项元素将表单重定向到不同的URL
- 使用javascript取消隐藏和隐藏表单中的某些元素
- 使用带有.net autopostback的ryanfait.com自定义表单元素
- 使用javascript更改表单元素的ID值
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 表单中元素的更改值为't已发布
- Small Javascript从动态表单中删除多个元素的问题
- 为什么表单元素不应命名为submit
- 如何使用相同的javascript控制表单中的不同元素
- 从函数中选择要触发表单提交的正确元素
- 如何重置搜索表单中的特定表单元素
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- 使用 ng-repeat访问 ng 表单元素/值
- 获取电子邮件附件的表单元素
- js 语法传递名称元素表单验证
- 如何选择元素表单列表并将其放入文本框中
- 如何使用JQuery获取主体中第一个元素(表单)的id
- 尝试使用每个查找元素表单XML文件