传递变量名称并将其评估为该变量的值

时间:2012-10-06 20:29:09

标签: javascript html

我有一个包含许多按钮的表单,所有按钮都在相关文本框中打印一个值。问题是值是一个相当长的文本字符串,我想创建一个较短的变量,例如。 '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>

3 个答案:

答案 0 :(得分:1)

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


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

// do stuff with inputText;

答案 1 :(得分:1)

您也可以使用javascript创建事件处理程序,而不是在HTML代码中定义事件处理程序。您需要在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" >

答案 2 :(得分: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;">
相关问题