Php ';onclick';不';t似乎无法使用';提交';按钮

Php ';onclick';不';t似乎无法使用';提交';按钮,php,javascript,html,Php,Javascript,Html,我已经多次遇到这个问题(我不想在这里使用“input type button”),为什么“onclick”不调用函数check()?即使字段为空,页面仍会提交。谢谢你的评论 Javascript: function check() { var name = document.getElementById('username_res'); var passw_old = document.getElementById('passw_reset_old'); var p

我已经多次遇到这个问题(我不想在这里使用“input type button”),为什么“onclick”不调用函数check()?即使字段为空,页面仍会提交。谢谢你的评论

Javascript:

function check() { 
    var name =  document.getElementById('username_res');
    var passw_old =  document.getElementById('passw_reset_old');
    var passw_new =  document.getElementById('passw_reset');
    var button_res = document.getElementById('sub_res');

    if ((name.val() == "") && (passw_old.val().length == "") && (passw_new.val().length == "")) { 
        button_res.disabled = true; 
    } else {
        button_res.disabled = false;
    }
}
HTML:



密码重置

所以…页面不应该在空字段上提交-为什么提交?谢谢..

您需要将按钮的类型从type=“submit”更改为type=“button”,然后在check()函数中,如果一切都通过了,您需要获取表单对象并提交它


因此,类似document.getElementById('formID').submit()

您需要将按钮的类型从type=“submit”更改为type=“button”,然后在check()函数中,如果一切都通过了,则需要获取表单对象并提交它


因此,类似document.getElementById('formID').submit()的内容将函数更改为:

function check() { 

    var name =  document.getElementById('username_res').value;
    var passw_old =  document.getElementById('passw_reset_old').value;
    var passw_new =  document.getElementById('passw_reset').value;

    return ((name != '') && (passw_old != '') &&  (passw_new != ''));

}
实际上,您不必将onclick事件更改为onsubmit,只需将其更改为
onclick=“return check();”
。您需要将onclick事件返回false以防止触发它


您可能需要添加一些视觉增强功能,以指示表单未提交的原因。否则会使访问者感到困惑。

将您的功能更改为:

function check() { 

    var name =  document.getElementById('username_res').value;
    var passw_old =  document.getElementById('passw_reset_old').value;
    var passw_new =  document.getElementById('passw_reset').value;

    return ((name != '') && (passw_old != '') &&  (passw_new != ''));

}
实际上,您不必将onclick事件更改为onsubmit,只需将其更改为
onclick=“return check();”
。您需要将onclick事件返回false以防止触发它


您可能需要添加一些视觉增强功能,以指示表单未提交的原因。否则会使访问者感到困惑。

您需要返回
false
,以避免事件传播


例如。

您需要返回
false
以避免事件传播


例如。

您可以尝试改用表单的onSubmit函数

<form id="passw_res" action="pass_reset.php" onSubmit="check()">

您可以尝试改用表单的onSubmit函数

<form id="passw_res" action="pass_reset.php" onSubmit="check()">


页面提交,因为
检查()脚本中没有任何内容可以阻止它。您的脚本仅在验证时禁用按钮,但此时单击/提交已经发生,因此表单将提交


所以使用
onsubmit='return check();',并根据验证返回true或false,而不是禁用。如果check()返回false,则“停止”提交操作,如果返回true,则继续提交操作

页面提交,因为
check()
脚本中没有任何东西可以阻止它。您的脚本仅在验证时禁用按钮,但此时单击/提交已经发生,因此表单将提交


所以使用
onsubmit='return check();',并根据验证返回true或false,而不是禁用。如果check()返回false,则“停止”提交操作,如果返回true,则继续提交操作

您试图对一个javascript变量调用jquery方法

试试这个

if ((name.value == "") && (passw_old.value == "") && (passw_new.value == "")) {
    return false;  
} else { 
    return true; 
}
您提交的按钮应该是

<input type="submit" value="submit" id="sub_res" name="sub_res" onclick="return check();"/>

您试图对一个javascript变量调用jquery方法

试试这个

if ((name.value == "") && (passw_old.value == "") && (passw_new.value == "")) {
    return false;  
} else { 
    return true; 
}
您提交的按钮应该是

<input type="submit" value="submit" id="sub_res" name="sub_res" onclick="return check();"/>


您不能使用
onsubmit
事件的任何原因?请使用
onsubmit
。并且
返回false,以防止在必要时提交。有任何原因不能使用
onsubmit
事件吗?请使用
onsubmit
。并且
返回false在你的函数中,以防止在必要时提交。是的,对于没有启用javascript的访问者来说非常好:他们将无法发布表单。抱歉,但我个人认为不使用javascript有点糟糕。。。你现在怎么能不使用javascript呢?我可以理解有些人不想使用Flash(仍然想知道为什么“因为Flash还可以”)但是JS?来吧……Facebook也建立在它的基础上;]是的,对于没有启用javascript的访问者来说非常好:他们将无法发布表单。抱歉,但我个人认为不使用javascript有点糟糕。。。你现在怎么能不使用javascript呢?我可以理解有些人不想使用Flash(仍然想知道为什么“因为Flash还可以”)但是JS?来吧……Facebook也建立在它的基础上;]本来要编辑的,但没有,以防我遗漏了什么。您的变量是对象,但您可以将它们与字符串进行比较。谢谢!是的…现在似乎可以工作了-onclick='return check();'是正确的…我还将值更改为(name.value==“”)| |(..)而不是(name.val()==“”)..将要编辑,但没有以防万一我遗漏了什么。您的变量是对象,但您可以将它们与字符串进行比较。谢谢!是的…现在似乎可以工作了-onclick='return check();'是正确的…我还将值改为(name.value==“”)| |(…..)而不是(name.val()==“”)。。