6

我想设置一个返回字符串的 JavaScript 函数,并将该字符串用作按钮的值。像这样的东西:

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

我想在 value 属性的 input 元素中使用这个函数。像这样的东西:

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

不幸的是,按钮上没有显示“一些文本”而是“test()”。我怎样才能解决这个问题?

4

5 回答 5

12

你可以这样做:

<input type="button" id="s1" value="" />
<script type="text/javascript">
 var elem = document.getElementById("s1");
 elem.value = "some text";
</script>
于 2013-04-23T11:06:27.993 回答
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

html 按钮的 value 属性只接受文本。看这里

我从您的问题中了解到的是您想要一个 html 按钮,其值应由 javascript 函数设置。你可以反过来实现这一点。

使用获取按钮元素document.getElementById并设置value内部test()

你的代码应该是这样的:

<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 回答
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 回答
0
function test(){
    x = "some text";
    document.getElementById('s1').value = x;
}
于 2013-04-23T11:05:22.723 回答