0

多くのボタンがあるフォームがあり、そのすべてが関連するテキストボックスに値を出力します。問題は、値がかなり長いテキスト文字列であり、短い変数を作成したいことです。'text'とし、その変数をegに等しくします。「一度だけ入力したい長い文」。これを可能にするためにこのコードを編集する方法

  function setInput(button, setValue) {
var buttonVal = button.value,
    textbox = document.getElementById('input_' + buttonVal);
textbox.value = setValue;

<html> 
<input type='submit' name='submit_a' value="a" 
 onclick="setInput(this,'make_me_a_variable'); return false;">
 </html>
4

3 に答える 3

1
var textLookup = {
    btnName1: "Long text",
    btnName2: "Longer text"
};


// inside your function
var buttonText = ...,
    inputText = textLookup[buttonText];

// do stuff with inputText;
于 2012-10-06T20:39:24.217 に答える
1

HTMLコードでイベントハンドラーを定義する代わりに、javascriptを使用してイベントハンドラーを作成することもできます。document.onloadの別のイベントハンドラーでこれを行う必要があります。以前に行った場合、入力HTML要素はまだ解析および作成されていない可能性があるため、そのためのイベントハンドラーを追加することはできません。

<script>
    // store your text in a variable
    var inputText = 'make_me_a_variable';
    // define some code which is executed when the page is loaded:
    document.addEventListener("load",function(event){
         // get the input by the id property I added to the HTML below.
          var input = document.getElementById('submit_a'); 
          // add an event handler for the click event (replaces the onclick HTML property)
          input.addEventListener("click",function(event) {
                setInput(this, inputText);
                return false;
          });
    });
</script>

[...]


 <input id="submit_a" type='submit' name='submit_a' value="a" >
于 2012-10-06T20:40:17.443 に答える
0

変数を作成し、長いテキストを変数に割り当てて、好きな場所で使用できます。

変更されたコード

 var longText = 'long text here'.
 function setInput(button) {
     var buttonVal = button.value,
     textbox = document.getElementById('input_' + buttonVal);
     textbox.value = longText ;
 }

HTML:

<input type='submit' name='submit_a' value="a" 
 onclick="setInput(this); return false;">
于 2012-10-06T20:41:18.880 に答える