0

我有一个带有许多按钮的表单,所有按钮都在相关的文本框中打印一个值。问题是该值是一个相当长的文本字符串,我想创建一个较短的变量,例如。'text' 并使该变量等于例如。“我只想打一次的长句”。知道如何编辑此代码以使其成为可能

  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 回答