我有一个表单,允许用户添加其他电子邮件输入字段。我想要制作所需的新字段。原始的单个电子邮件字段按预期运行,但不是新的。我尝试了两种方法但没有成功。 HTML
<form action="/(S(e5sipzkzq4cbahmey3c2f0xs))/Import/PostEmail" id="EmailForm" method="post" > <fieldset>
<legend>EmailViewModel</legend>
<p>
<input type="email" name="EmailAddresses" value=" " class="email" required="required" />
<span class="btn_orange"><a href="#" class="remove_field">x</a></span>
</p>
<p>
<span class="btn_orange"><a class="add_email_button" href="#">Add Another Email</a></span>
</p>
<p>
<span class="btn_orange"><a type="submit" id="SendEmail_Button">Send Email</a></span>
</p>
</fieldset>
</form>
添加新输入:
$('.add_email_button').closest('p').click(function() {
var html = '<p><input type="email" required="required" name="EmailAddresses" /><span class="btn_orange"><a href="#" class="remove_field">x</a></span></p>';
$(html).insertBefore($(this));
});
方法1:
$('body').on('click', 'span', function() {
$('input').each(function() {
$(this).attr('required', 'required');
});
});
方法2:
$('#SendEmail_Button').closest('span').click(function () {
$('input').each(function() {
$(this).attr('required', 'required');
});
$('#EmailForm').submit();
});
接近3
$('#SendEmail_Button').closest('span').click(function() {
if ($('#EmailForm').valid()) {
$.post('@Url.Action("PostEmail")', $("#EmailForm").serialize());
history.go(-1);}
});
答案 0 :(得分:1)
尝试此操作并定位用户添加的新输入字段,而不是input
(使用更具体的类)。
$('body').on('focus', '.inputClass', function() {
$(this).attr('required', 'required');
});