可能重复:
I want to verify in JavaScript that my required fields are not blank
我之前发布了这个,没有一个解决方案有效。我确实使用了一些建议,所以我可能更接近了。当用户提交时,即使未完成必填字段,它也会前进到下一页。我想要它,以便如果任何必填字段为空,它不会前进。我该如何更改代码才能完成此任务?
<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>
答案 0 :(得分:1)
见this fiddle。你的逻辑似乎工作正常。该页面还有其他内容吗?
只是flagInvalid
总是出现'假'吗?所以总是进行ajax调用?
insert()
运行button
功能?或锚标记。如果您使用button
this fiddle并且您的按钮位于form
内,那么它仍会运行insert()
功能,但会提交form
权限离开,看起来你的页面可能会转移到其他地方。
答案 1 :(得分:0)
尝试在此行使用严格比较运算符:
if (tempArray[i].value === ""){