当我在HTML中使用按钮标记调用Javascript函数时,Jquery失败,而Javascript函数又使用Jquery

时间:2010-10-25 14:48:40

标签: javascript jquery-ui

我的HTML页面上有按钮。最初我正在使用

<input name="op" id="changepass_submit" value="Change Password" disabled="disabled" class="form-submit" type="button" onClick="change_passwd();" />. 

使用此我可以调用javascript函数change_passwd(),其定义为,

function change_passwd()
{
    var o_pass = document.getElementById('o_passwd').value;
    var n_pass = document.getElementById('n_passwd').value;
    var c_pass = document.getElementById('c_passwd').value;
    if(n_pass == "")
        alert("New Password can not be empty!");
    else 
    {
        if(n_pass == o_pass)
        {
            alert('New password and old password are same! Please choose different new password.');
        }
        else
        {
            o_pass = rtrim(ltrim(o_pass));
            n_pass = rtrim(ltrim(n_pass));
            $.ajax({
                type: "POST",
                data: {o_pass:o_pass,n_pass:n_pass},
                url: "changepass",
                success: function(response) {
                    var result = eval(response);
                    alert(result[1]);
                    window.location = "/my_profile";
                }
            });
        }
    }
}

工作正常。

但是当我将<input>标记更改为:

<button name="op" id="changepass_submit" disabled="disabled" class="form-submit" onClick="change_passwd();" style="width:150px;"><strong>Change Password</strong></button>

它给出了jQuery错误..

为什么呢?如果任何机构有任何建议或答案请告诉我。提前谢谢。

1 个答案:

答案 0 :(得分:2)

我不知道jQuery错误(错误是什么?)但默认情况下<button>type="submit"而不是type="button"。这意味着单击时(假设未在标记中禁用),因为您没有return false取消默认操作,表单将继续提交,可能取消您的ajax()操作。