Javascript 我的网页赢了';即使未填写必填字段,也不要停止前进到下一页

Javascript 我的网页赢了';即使未填写必填字段,也不要停止前进到下一页,javascript,Javascript,可能重复: 我早些时候发布了这篇文章,但没有一个解决方案有效。我确实使用了一些建议,所以我可能更接近。当用户提交时,即使必填字段未填写,也会进入下一页。我希望这样,如果任何必填字段为空,它就不会前进。我应该如何更改代码来实现这一点 <script type="text/javascript"> function insert() { if (window.XMLHttpRequest) { xmlhttp = new XLMH

可能重复:

我早些时候发布了这篇文章,但没有一个解决方案有效。我确实使用了一些建议,所以我可能更接近。当用户提交时,即使必填字段未填写,也会进入下一页。我希望这样,如果任何必填字段为空,它就不会前进。我应该如何更改代码来实现这一点

    <script type="text/javascript">
    function insert() {
        if (window.XMLHttpRequest) {
            xmlhttp = new XLMHttpRequest();
        } else {
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }

        cn1 = 'child_name'+document.getElementById('child_name').value;
        ag2 = 'age'+document.getElementById('age').value;
        hm3 = 'hometown'+document.getElementById('hometown').value;
        bg4 = 'boy_girl'+document.getElementById('boy_girl').value;
        fn5 = 'first_name'+document.getElementById('first_name').value;
        ln6 = 'last_name'+document.getElementById('last_name').value;
        email = 'email'+document.getElementById('email').value;
        ad8 = 'address1'+document.getElementById('address1').value;
        ad9 = 'address2'+document.getElementById('address2').value;
        ct10 = 'city'+document.getElementById('city').value;
        st11 = 'state'+document.getElementById('state').value;
        zp12 = 'zip'+document.getElementById('zip').value;

        var flagInvalid = false;
        var tempArray = document.getElementsByClassName("required");
        for (var i = 0; i < tempArray.length; i++)
        {
            if (tempArray[i].value == ""){
                flagInvalid = true;
                break;
            }
        }

        if (flagInvalid == false) {
        xmlhttp.open('POST', 'payment.php', true);
        xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xmlhttp.send(cn1&ag2&hm3&bg4&fn5&ln6&email$ad8&ad9&ct10&st11&zp12);

        } else {
            alert ("Please enter all required fields.");
        }

    }
</script>

函数插入(){
if(window.XMLHttpRequest){
xmlhttp=new-XLMHttpRequest();
}否则{
xmlhttp=newActiveXObject('Microsoft.xmlhttp');
}
cn1='child_name'+document.getElementById('child_name')。值;
ag2='age'+document.getElementById('age').value;
hm3='homightry'+document.getElementById('homightry').value;
bg4='boy\u girl'+document.getElementById('boy\u girl').value;
fn5='first_name'+document.getElementById('first_name')。值;
ln6='last_name'+document.getElementById('last_name')。值;
email='email'+document.getElementById('email').value;
ad8='address1'+document.getElementById('address1').value;
ad9='address2'+document.getElementById('address2').value;
ct10='city'+document.getElementById('city').value;
st11='state'+document.getElementById('state').value;
zp12='zip'+document.getElementById('zip').value;
var flagInvalid=false;
var tempArray=document.getElementsByClassName(“必需”);
对于(var i=0;i
请参阅。你的逻辑似乎很好。这一页还有别的事吗

只是
flagInvalid
总是出现“false”吗?所以总是进行ajax调用

编辑:我有另一个想法。是否从
按钮运行
insert()
功能?或者一个锚标签。如果您使用的是
按钮
类,并且您的按钮位于
表单
中,则它仍将运行
插入()
功能,但会立即提交
表单
,您的页面可能会转到其他地方。

请参阅。你的逻辑似乎很好。这一页还有别的事吗

只是
flagInvalid
总是出现“false”吗?所以总是进行ajax调用


编辑:我有另一个想法。是否从
按钮运行
insert()
功能?或者一个锚标签。如果您使用的是
按钮
like,并且您的按钮位于
表单
中,则它仍将运行
插入()
函数,但会立即提交
表单
,并且您的页面似乎要转到其他地方。

请尝试在此行使用严格比较运算符:

if (tempArray[i].value === ""){

请尝试在此行中使用严格比较运算符:

if (tempArray[i].value === ""){

如果你已经在其他地方发布,继续在那里发布。在同一主题上开始一个新问题被认为是不好的形式。请尝试在您的
for
loop@Madbreaks特别是在仅仅3个小时后…我为违反礼仪感到抱歉-这是新的。谢谢大家的帮助。如果你已经在其他地方发布了,请继续在那里发布。在同一主题上开始一个新问题被认为是不好的形式。请尝试在您的
for
loop@Madbreaks特别是在仅仅3个小时后…我为违反礼仪感到抱歉-这是新的。谢谢大家的帮助。“编辑:我有另一个想法。您是从按钮运行insert()函数?还是从锚定标记运行。如果您使用的是类似于此提琴的按钮,并且您的按钮位于表单中,则它仍将运行insert()函数,但会立即提交表单,并且您的页面可能会转到其他地方。”---是的,这就是问题所在。但是如果我去掉锚标签,它就什么都没有了。如何更正?如果添加
返回false
到按钮中的
onclick()
,它将不会提交表单
submit
请参见“如果将return false添加到按钮中的onclick(),它将不会提交表单。”--只是尝试了一下,没有任何更改,表单仍然提交。找到了它。拼写错误
xmlhttp=new-XLMHttpRequest()
应该是
xmlhttp=newxmlhttprequest()该错误阻止代码继续,因此JS从未返回“return false”,它只是提交了页面。我已经在这里更新了您的小提琴,您在一些
  • 项目上的
    class='required'
    一切都很好。您应该只将其置于
    输入
    。“编辑:我有另一个想法。你是从按钮运行insert()函数?还是从锚定标记运行。如果你使用的是像这个提琴一样的按钮,并且你的按钮在表单中,那么它仍然会运行insert()函数,但会立即提交表单,并且看起来你的页面可能会转到其他地方。”---是的,这就是问题所在。但是如果我去掉锚标签,它就什么都没有了。如何更正?如果添加
    返回false
    到按钮中的
    onclick()
    ,它将不会提交表单
    submit
    请参见“如果将return false添加到按钮中的onclick(),它将不会提交表单。”--只是尝试了一下,没有任何更改,表单仍然提交。找到了它。拼写错误
    xmlhttp=new-XLMHt