0

テキスト ボックスから HTML を取得して if/else ステートメントで使用しようとしている初心者です。これは私のHTMLコードです:

    <label id="label1">
    Enter any Number:
</label>
<input type="button" id="Button1"  value="button" />
    <input type="text" id="TextBox1" name="myname" />

私のJavaScriptコードは次のとおりです。

    <script type="text/javascript">
//<![CDATA[
var buttonElement = document.getElementById("Button1");
var txt_value =document.getElementById("TextBox1").value;
buttonElement.addEventListener('click', function() { Clicked(txt_value) }, false);

function Clicked(txt_value) {

    if (txt_value == 7) {
        alert("You are 7");
    }
    else { alert("You are not 7"); }
}
//]]>
    </script>

私はそれを観察しました

    var txt_value =document.getElementById("TextBox1");

その後

      buttonElement.addEventListener('click', function() { Clicked(txt_value.value) }, false);

上記の例はまったく問題なく動作します。

誰かが何が悪いのか教えてください:

    var txt_value =document.getElementById("TextBox1").value;

空の txt_value を取得する理由がわかりません

4

2 に答える 2

1

その理由は、ユーザーが何かを入力するtxt_value 前に値を取得しているためです。したがって、値は常に空です。

コードを次のように変更した場合:

var txt_value =document.getElementById("TextBox1");//removed .value

関数 Clicked to:

function Clicked(txt_value) {

    if (txt_value.value == 7) { //added .value
        alert("You are 7");
    }
    else { alert("You are not 7"); }
}

動作するはずです。

ここにjsfiddleがあります

于 2012-07-18T14:46:33.943 に答える
1

値の取得をクリック ハンドラに移動します...

var textbox1 = document.getElementById("TextBox1");

document.getElementById("Button1").onclick = function () {
    var txt_value = textbox1.value;

    if (parseInt(txt_value, 10) === 7) {
        alert("You are 7");
    } else { 
        alert("You are not 7"); 
    }
};

これで、ページの読み込み時にテキスト ボックスにある値を取得できます。

これをテストするためのJSFiddleを次に示します。

更新テキストボックスをキャッシュすることで効率を改善しました。addEventListener を onclick から削除しました (より多くのブラウザー サポート)。

于 2012-07-18T14:46:40.010 に答える