6

文字列を返す JavaScript 関数を設定し、その文字列をボタンの値として使用したいと考えています。このようなもの:

function test(){
 x = "some text";
 return x;
}

この関数を value 属性の input 要素で使用したいと考えています。このようなもの:

<input type="button" id="s1" value="test()" />

残念ながら、ボタンには「some text」ではなく「test()」が表示されます。どうすればこれを修正できますか?

4

5 に答える 5

3

ボタンの値を設定する正しい方法は、HTML DOM または JQuery のようなフレームワークを使用することです。これにはJSBin Demoもあります。

例えば、

HTMLtest -ドキュメントの読み込み時に関数を実行します。

<body onload = "test()">
  <input type="button" id="s1" value="" />
</body>

JavaScript -

function test(){
 x = "some text";
 document.getElementById("s1").value =x;
}

JSBin デモを見る

于 2013-04-23T11:08:18.373 に答える
2

カスタム データ属性を使用してエレガントな方法で行うこともできます。

ここで JSFiddle デモを参照してください: http://jsfiddle.net/NJ5sK/

基本的に、値を返すために呼び出される関数の名前で入力要素をマークします。次に、属性を持つすべての要素を取得しdata-value-function、関数を実行して値を割り当てます。

HTML:

<input type="text" data-value-function="cheese" />
<input type="text" data-value-function="animal" />

JS:

window.cheese = function() {
    return "Limburger";
}

window.animal = function() {
    return "Cat";
}

var elements = document.querySelectorAll('*[data-value-function]');
for (var i = 0; i < elements.length; i++) {
    var valueFunctionName = elements[i].getAttribute('data-value-function');
    elements[i].value = window[valueFunctionName]();
}

楽しみ!

于 2013-04-23T11:33:38.520 に答える
2

HTML ボタンの value 属性は、テキストのみを受け入れます。ここを参照してください。

あなたの質問から私が理解しているのは、javascript 関数によって値を設定する必要がある html ボタンが必要だということです。これは逆の方法で実現できます。

を使用してボタン要素を取得し、内部document.getElementByIdを設定しますvaluetest()

コードは次のようになります。

<input type="button" id="s1"/>

<script>
   function test(){
      document.getElementById('s1').value ='some text'; //s1 is the id of html button
   };
   test(); //dont forget to call function
</script>
于 2013-04-23T11:22:57.060 に答える