我曾尝试为我的html表单编写js。 js在逻辑上正常运行。但如果逻辑失败,我的意思是如果任何条件失败,它会重新加载页面,这是我不想要的。我提供的代码。如果有的话,请指出js中的错误。
window.onload = function() {
document.getElementById('submitlink').onclick = function() {
var bflag = document.addpro.brandflag;
var brand = document.addpro.brand1.value;
var cflag = document.addpro.catflag;
var cat = document.addpro.cat1.value;
var color1 = document.addpro.color1.value;
var color2 = document.addpro.color2.value;
if(cb_validation(bflag,brand))
{
if(cb_validation(cflag,cat))
{
if(colorcheck(color1,color2))
{
document.getElementById('addproform1').submit();
return false;
}
}
}
}
function cb_validation(flag,field)
{
if(flag[0].checked)
{
if(field==0)
{
alert('Please Select Both Brand And Category');
field.focus();
return false;
}
else
return true;
}
else
return true;
}
function colorcheck(c1,c2)
{
if((c1==0) && (c2==0))
{
alert('Please Select Both Colours');
document.addpro.color1.focus();
return false;
}
else if((c1==0))
{
alert('Please Select 1st Colour');
document.addpro.color1.focus();
return false;
}
else if((c2==0))
{
alert('Please Select 2nd Colour');
document.addpro.color2.focus();
return false;
}
else
return true;
}
}
我是js的新秀。如果我有任何错误,请告诉我。
答案 0 :(得分:2)
return false
是阻止页面重新加载的原因。现在它在你的最终颜色检查条件内。如果您不希望页面重新加载,则需要在您的第一个cb_validation
条件之后。
答案 1 :(得分:1)
Submit()导致页面刷新位于下面一行 的document.getElementById(' addproform1')提交();
此外,您的函数都返回true,因为您在else块中返回true。希望这能指出你正确的方向......
祝你好运....