Javascript post form

Javascript post form

本文关键字:form post Javascript      更新时间:2023-09-26

我试图通过javascript提交表单,特定字段验证后。

我用

function doValidate(){
        var error = false;
        var nr = document.getElementById('number').value;
    if (nr > '10'){
        document.getElementById('number').className += " red";
        error = true;
    }
    if (error = false) {
        document.forms["new_qs"].submit();
    }
}

但是当error为false时,什么也没发生!我用firebug检查了网站,错误是假的,document.forms似乎什么都不做。但是在在线教程中,这工作得非常好。

这是一个完整的小提琴从网站http://jsfiddle.net/S7G9J/25/

问题/解决方案是什么?

if (error = false) {

在上面,你使用赋值操作符。=。使用==比较

你是在比较字符串而不是数字。

试试这个:

function doValidate(){
    var error = false;
    var nr = Number(document.getElementById('number').value);
    if (nr > 10){
        document.getElementById('number').className += " red";
        error = true;
    }
    if (error === false) {
        document.querySelector('[type="button"]').submit();
    }
}

错误出现在提交表单的那一行。

在您的小提琴中,您的表单的id是"test"。在你的javascript中,你引用的表单应该有一个id为"new_qs"。但是,没有这样的表单,因此没有处理submit()。

document.forms[0].submit()将按照出现在HTML中的顺序提交第一个表单。那么,试试这个:

function doValidate(){
    var error = false;
    var nr = document.getElementById('number').value;
if (nr > '10'){
    document.getElementById('number').className += " red";
    error = true;
}
if (error == false) { // need double equal here
    document.forms[0].submit();
}
}