0

こんにちは、フォームを送信する前にフィールド値を検証したいのですが、これが私のコードです

<table width="600" border="0" align="left">
<tr>
<script type="text/javascript">
function previewPrint()
{

var RegNumber = document.getElementById('PP_RegNoTextBox').value;
var PassportNo = document.getElementById('PP_PassportNoTextBox').value;
if (RegNumber=="")
{
    alert("Please enter your Reg No.!");
    document.getElementById('RegNoTextBox').focus();
    return false;
}
if (PassportNo=="")
{
    alert("Please enter your Passport No.!");
    document.getElementById('PassportNoTextBox').focus();
    return false;
}
    //window.open('regformview.php?RegNumber=RegNumber');
    }
    </script>
<form name="ppform" onSubmit="return previewPrint();" method="post" action="regformview.php">   
<td width="100" align="LEFT" class="font8">&nbsp; </td>
<td width="337" align="LEFT" class="font8"><u>Preview your Application:</u> Please provide requested details.<br>
  Reg No.: <input type="text" name="printregno" id="PP_RegNoTextBox" class="input2"> Passport No.:  <input type="text" name="printemail" class="input2"><input type="hidden" name="flagging" id="PP_PassportNoTextBox" value="1" class="input2">&nbsp;</td>
<td width="50" align="LEFT" class="font8"><div style="float:left; background-image:url(images/printPreview1.jpg); background-repeat:no-repeat;">   
  <input type="image" src="images/printPreview1.jpg" name="ppbutton" value="" onMouseOver="this.src='images/printPreview2.jpg'" onMouseOut="this.src='images/printPreview1.jpg'"></div></td>

</form>
   </tr>
</table>

問題は、警告ボックスが空白の場合に正しく表示されることですが、ページは送信後に regformview.php に移動します。検証後にのみ regformview.php に移動する方法。

4

3 に答える 3

4

これらは未定義です:

document.getElementById('RegNoTextBox').focus();
document.getElementById('PassportNoTextBox').focus();

そのはず:

document.getElementById('PP_RegNoTextBox').focus();
document.getElementById('PP_PassportNoTextBox').focus();
于 2012-09-27T06:54:41.413 に答える
2

スクリプトにエラーがあり、検証が失敗しても送信できることを除いて、すべて問題ありません。

次の行を変更します

 document.getElementById('PassportNoTextBox').focus();

document.getElementById('RegNoTextBox').focus();

なので

 document.getElementById('PP_PassportNoTextBox').focus();

 document.getElementById('PP_RegNoTextBox').focus();
于 2012-09-27T06:57:35.990 に答える
0

これを試してみてください。

onSubmit="previewPrint();return false;"
于 2012-09-27T07:00:02.123 に答える