0

テキストフィールドにテキストが入力されてから入力ボタンが押されたときに発生させたい外部スクリプトにJavascriptがあります。Enterボタンを押しても何も起こらないので、誰かがこれを機能させる方法を説明してください。事前にご協力いただきありがとうございます。

また、テキスト ボックスから JavaScript 関数にテキストを渡すにはどうすればよいですか。

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html>
  <head> 
        <title> All About Resistors </title>
        <link rel="stylesheet" type="text/css" href="resistorpagestlying.css" />

  <script type="text/javascript"
  src="Value_to_Color.js">
  </script>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  </head>

 <body>

 <p>Resistor Value: <input type="text" onClick="print_text" id="test" value="Ohms"></p>
 <button>Show Color Code</button>


  </body>
  </html>

これは、javascript ファイル内のテキストです。

function print_text(){
document.writeln("<b>Bold Hello World via an external js file!</b>"); 
}
4

2 に答える 2

0

関数を呼び出すための構文は次のとおりです。

 function_name()

あなたはparensを逃しています。

したがって:

print_text()

特定のキーが押されたときに関数を起動する場合は、要素がクリックされたときに起動されるため、クリックも使用しないでください。

イベントを使用し、そのkeypressときにどのキーが押されたかをテストする必要があります。

onkeypress組み込みのイベント属性を使用していないため、属性で押されたキーを見つける方法がわかりません。では、に移動しましょうaddEventListener

<input type="text" id="test" value="Ohms">
<script>
    document.getElementById('test').addEventListener('keypress', function (event) {
      var charCode = (typeof event.which == "number") ? event.which : event.keyCode
      if (charCode === 13) { // 13 is Enter
         print_text(); 
      }
    });
</script>
于 2013-03-21T13:47:17.900 に答える
0

私はあなたがこれを探していると思います:

<p>Resistor Value: <input type="text" onkeypress="print_text();" id="test" value="Ohms"></p>

これは呼び出している関数であるため、print_text()持っていることに注意してください。()次に、Enter キーを押したときに関数を呼び出したい場合は、関数の本体を次のように変更する必要があります。

function print_text()
{
    if (event.which == 13 || event.keyCode == 13) //enter key?
       document.writeln('<b>Bold Hello World via an external js file!</b>');
}

また、「onclick」イベントをリッスンする代わりに、テキスト フィールドで「onkeypress」イベントをリッスンする必要があります。

ここにJsFiddle:

http://jsfiddle.net/YpVEQ/1/

于 2013-03-21T13:54:44.913 に答える