我在点击页面上的“保存”按钮时运行了一些JS函数。按钮看起来像这样:
<img src="images/btn/save.gif" name="btnSubmit" onClick="noSpaceTest();minMaxValues();compare2dates(benefit_start_date, benefit_end_date,'javascript:saveNewBenefit()')" width="60" height="22" border="0" class="btnimg">
我感兴趣的函数是minMaxValues()。如果此测试失败,则表单不应提交(在这种情况下,表示不应运行任何其他函数。)我使用return false;在minMaxValues()函数中运行(警告错误值)但在解除警报后,其他函数被调用,而不是停止。
这是功能:
//Function to validate if maximum benefit value is more the minimum benefit value
function minMaxValues(){
var maxAmt = ($('#maxAmount').val());
var minAmt = ($('#minAmount').val());
if ((minAmt != '') && (maxAmt != '')){
try{
maxAmt = parseInt(maxAmt);
minAmt = parseInt(minAmt);
if(maxAmt < minAmt) {
alert('The maximum benefit amount must be larger than the minimum amount.');
return false;
}
}catch(e){
return false;
}
}//end maxAmt minAmt comparison
return true;
}//end minMaxValues function
如果这个函数返回false,是否有办法让不允许执行任何其他函数?
答案 0 :(得分:3)
"btnSubmit" onClick="noSpaceTest();minMaxValues()?:return;compare2dates(benefit_start_date, benefit_end_date,'javascript:saveNewBenefit()')" width="60" height="22" border="0" class="btnimg">
或
"btnSubmit" onClick="noSpaceTest();if(!minMaxValues()){return};compare2dates(benefit_start_date, benefit_end_date,'javascript:saveNewBenefit()')" width="60" height="22" border="0" class="btnimg">
应该停止提交以及停止执行其他功能
编辑:你应该把它全部放在一个更干净的点击处理函数中,这只是一个快速修复
答案 1 :(得分:3)
您可以编写一个封装逻辑的函数:
function clickHandler()
{
noSpaceTest();
var minMax = minMaxValues();
if(minMax)
{
compare2dates(benefit_start_date, benefit_end_date,'javascript:saveNewBenefit()')
}
}
然后
<img src="images/btn/save.gif" name="btnSubmit" onClick="clickHandler();" width="60" height="22" border="0" class="btnimg">
答案 2 :(得分:3)
<script>
function chuma()
{
noSpaceTest();
if(minMaxValues())
compare2dates(benefit_start_date, benefit_end_date,'javascript:saveNewBenefit()');
}
</script>
<img src="images/btn/save.gif" name="btnSubmit" onClick="chuma();" width="60" height="22" border="0" class="btnimg">
这样可行。我希望这就是你要找的东西。
答案 3 :(得分:2)
不要返回false,只需尝试返回。返回false仍返回要评估的值,而return只退出该函数。编辑:也许尝试回调函数而不是返回。