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