簡體   English   中英

在“提交”表格被刪除后,瀏覽器的行為有所不同

[英]Browsers behave differently after 'submit' form is exectuted

我有一個非常簡單的例子:

<html> 
<head> 

 <title> Addition</title> 

<script type="text/javascript"> 

    document.write("Please enter values to be added into the fields and click Add button1");


function sum() 
{     
     var num1 = document.formOne; 
     value1 = Number(num1.input1.value); 

     var num2 = document.formOne; 
     value2 = Number(num2.input2.value);   

  if (value1=="")
    { 
       document.write("Valid value cannot be empty!"); 

    }
  else if(value2=="")
    { 
        document.write("Valid value cannot be empty!"); 

    }
    else 
    { 
       var add = value1 + value2;    
       document.write ("The sum is " + add );     
    } 

 return true;
}

</script> 
</head> 

<body> 

<form id="forma" name="formOne" runat="server" onsubmit="sum()">
    <p><input id="Textone" name="input1" type="text" size="8"></p> 
    <p><input id="Texttwo" name="input2" type="text" size="8"></p> 
    <p><input type="submit" value="Add"> </p> 
</body> 
</html>

在IE中,單擊“添加”后,給出了答案,但是頁面不會在F5上重新加載。 要重新加載,我需要點擊“返回”。 在Chrome中,答案會閃爍,但頁面會重新開始。 我究竟做錯了什么?

如果您不希望表單將數據提交回服務器,則onsubmit參數應返回false。

function sum() 
{     
  var num1 = document.formOne; 
  value1 = Number(num1.input1.value); 

  var num2 = document.formOne; 
  value2 = Number(num2.input2.value);   

  if (value1=="")
  { 
    document.write("Valid value cannot be empty!"); 

  }
  else if(value2=="")
  { 
    document.write("Valid value cannot be empty!"); 

  }
  else 
  { 
    var add = value1 + value2;    
    document.write ("The sum is " + add );     
  } 


  return false; // Changed to "false"
}

您還需要調整HTML,以便sum()中的值實際上返回onsubmit處理程序。

<form id="forma" name="formOne" runat="server" onsubmit="return sum();">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM