我目前有一个注册表单,当从链接中单击时,会在jQuery对话框模式框中打开。提交表单时我使用了.delegate。
JS
$('.regForm').delegate("#submit" , "click" , function(event) {
event.preventDefault();
var form_data = {
username: $('#regUsername').val(),
password: $('#regPassword').val(),
confirm_password: $('#regConfPass').val(),
email: $('#regEmail').val(),
confirm_email: $('#regEmailConf').val()
};
});
html
<div class="regForm">
<form action="http://adomain.com/register/jsReg" method="post" accept-charset="utf-8" >
<table class="regFormTable">
<tr>
<td>Username</td>
<td><input class="regInput borderradius3" type="text" name="username" id="regUsername"/></td>
</tr>
<td></td>
<td><input type="submit" class="button borderradius3" value="Register" id="submit"/></td>
</tr>
</table>
</form>
</div>
问题是当我关闭并重新打开对话框时,表单输入值与第一个相同。我认为它正在寻找匹配然后获取值的第一组id,我可能是错的。我已经看过尝试使用event.target获取值,但我不确定如何获取值。
对此的任何帮助将非常感激:)
答案 0 :(得分:0)
ID必须是唯一的。您的问题听起来像是有多个具有相同ID的元素。 每次打开对话框时,是否创建了新的regForm?如果是这样:为了确保您的ID是唯一的,您可以在获得值后remove“regForm”,或者您可以重置表单值并在下次用户单击时重用现有的“regForm”。