使用event获取新的表单输入值 - JQuery

时间:2011-09-09 13:11:09

标签: jquery

我目前有一个注册表单,当从链接中单击时,会在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获取值,但我不确定如何获取值。

对此的任何帮助将非常感激:)

1 个答案:

答案 0 :(得分:0)

ID必须是唯一的。您的问题听起来像是有多个具有相同ID的元素。 每次打开对话框时,是否创建了新的regForm?如果是这样:为了确保您的ID是唯一的,您可以在获得值后remove“regForm”,或者您可以重置表单值并在下次用户单击时重用现有的“regForm”。