2016-11-12 6 views
0

Webページに現在の質問の番号を表示するHTML TextBoxがあります(質問に答える小さなWebページ)。ユーザーが希望する質問のショートカットをタイプ番号で表示したいTextBoxの質問 以下のコードを使用しますが、正しく動作しません。 すべての質問は8です。テキストボックスに15を入力してEnterキーを押すと、if節は機能せず、Question変数が15で設定されます。 アラート関数を使用してトレースしています。 。誰かがそれを確認して私を導くことができますか? これは私のすべてのコードです:JavaScriptでonkeypressを計算する

<?php 
$All = 8; 
$URL = "http://localhost/Test.php"; 
if(isset($_GET["edtQuestionNo"])){ 
    $QuestionNo = $_GET["edtQuestionNo"]; 
}else{ 
    $QuestionNo = 1; 
} 
?> 
<html> 
<head> 
<title>Test Page</title> 
<script type="text/javascript"> 
function KeyPress(e, URL, All){ 
    if(e.keyCode === 13){ 
     var Question = document.getElementsByName("edtQuestionNo")[0].value; 
     if(Question > All){ 
      Question = All; 
      alert(All + " " + Question + " yes"); 
     } 
     else{ 
      alert(All + " " + Question + " no"); 
     } 
     window.open(URL + "?edtQuestionNo=" + Question,"_self"); 
    } 
} 
</script> 
</head> 
<body> 
    <form action="Test.php" method="get" name="FRMQuestion"> 
     <label>Enter question number : </label> 
     <input type="text" name="edtQuestionNo" id="QuestionNo" value="<?php echo $QuestionNo; ?>" 
      onkeypress="KeyPress(event,'<?php echo $URL; ?>','<?php echo $All; ?>')"> 
     <br> 
     <label>Question number is : <?php echo $QuestionNo; ?></label> 
    </form> 
</body> 
</html> 
+0

は、「すべて」、変数「URL」であるものを示し、また、あなたはただ、頭までこのkeypressイベント – repzero

+0

を追加しているあなたのHTMLコンテナ - このコードは、あなたのようにXSSの脆弱ですそれを印刷する前にユーザー入力($ QuestionNo)をエスケープしていません。 http://stackoverflow.com/questions/15755323/what-is-cross-site-scriptingおよびhttp://stackoverflow.com/search?tab=votes&q=xssをご覧ください。 – Dogbert

答えて

0

私は私がすべてと質問の値を比較するためのparseInt機能を使用する必要が 1.それを解決します。彼らは異なるタイプのためです。 2. HTML TextBoxにQuestion値(計算後)を入れてURLを開きます。 私のコードは次のとおりです。

<?php 
$All = 8; 
$URL = "http://localhost/Test.php"; 
if(isset($_GET["edtQuestionNo"])){ 
    $QuestionNo = $_GET["edtQuestionNo"]; 
}else{ 
    $QuestionNo = 1; 
} 
?> 
<html> 
<head> 
<title>Test Page</title> 
<script type="text/javascript"> 
function KeyPress(e, URL, All){ 
    if(e.keyCode === 13){ 
     var Question = document.getElementsByName("edtQuestionNo")[0].value; 
     if(parseInt(Question) > parseInt(All)){ 
      Question = All; 
     } 
     document.getElementsByName("edtQuestionNo")[0].value = Question; 
     window.open(URL + "?edtQuestionNo=" + Question,"_self"); 
    } 
} 
</script> 
</head> 
<body> 
    <form action="Test.php" method="get" name="FRMQuestion"> 
     <label>Enter question number : </label> 
     <input type="text" name="edtQuestionNo" id="QuestionNo" value="<?php echo $QuestionNo; ?>" 
      onkeypress="KeyPress(event,'<?php echo $URL; ?>','<?php echo $All; ?>')"> 
     <br> 
     <label>Question number is : <?php echo $QuestionNo; ?></label> 
    </form> 
</body> 
</html>