gpt4 book ai didi

Javascript 函数似乎总是接收相同的输入

转载 作者:行者123 更新时间:2023-11-28 20:05:14 25 4
gpt4 key购买 nike

我为这段代码奋斗了几个小时。无论我做出什么选择,输出总是就像我选择了第一行(set17、gpio17 以及第一个组合框中的任何内容)。

我尝试将单引号更改为双引号,尝试了不同的浏览器,并为每一行定义了不同的ajaxFunctions,但结果始终相同。

预期的结果是,例如,当组合框更改时,会出现带有 GPIO24 线值的警报框。

谁能告诉我我做错了什么?

顺便问一下,有没有办法将 $item 和 $action 变量传递给“document.getElementById”,而无需创建文本框?

提前致谢

<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="en">
<body>

<script type="text/javascript">
function ajaxFunction(){
var action = document.getElementById('action');
var item = document.getElementById('item');
var value = document.getElementById('value');
alert("You entered: " + " " + action.value + " " + value.value + " " + item.value )


}
</script>


<center><b>AJAX TEST PAGE</b><br/><br/><table border="1"><tr>

<td>gpio17</td><td> Sensor Wireless #3 <td>
<form name='gpio17'>
<select id='value' onchange='ajaxFunction()'>
<option value= value_option_1> value_option_1</option>
<option value='value-option_1'>Option_1_display</option>
<option value='value-option_2'>Option_2_display</option>
<option value='value-option_3'>Option_3_display</option>
</select><td>
<input type='text' id='action' value='set17' /> <br />
<input type='text' id='item' value='gpio17' /></td></form></td></tr><tr>

<td>gpio23</td><td> Sensor Wireless #2<td>
<form name='gpio23'>
<select id='value' onchange='ajaxFunction()'>
<option value= value_option_2> value_option_2</option>
<option value='value-option_1'>Option_1_display</option>
<option value='value-option_2'>Option_2_display</option>
<option value='value-option_3'>Option_3_display</option>
</select><td>
<input type='text' id='action' value='set23' /> <br />
<input type='text' id='item' value='gpio23' /></td></form></td></tr><tr>

<td>gpio24</td><td> Sensor Wireless #1<td>
<form name='gpio24'>
<select id='value' onchange='ajaxFunction()'>
<option value= value_option_1> value_option_1</option>
<option value='value-option_1'>Option_1_display</option>
<option value='value-option_2'>Option_2_display</option>
<option value='value-option_3'>Option_3_display</option>
</select><td>
<input type='text' id='action' value='set24' /> <br />
<input type='text' id='item' value='gpio24' /></td></form></td></tr><tr>

<td>gpio25</td><td> Sensor Wireless #0
<td><form name='gpio25'>
<select id='value' onchange='ajaxFunction()'>
<option value= value_option_3> value_option_3</option>
<option value='value-option_1'>Option_1_display</option>
<option value='value-option_2'>Option_2_display</option>
<option value='value-option_3'>Option_3_display</option>
</select><td>
<input type='text' id='action' value='set25' /> <br />
<input type='text' id='item' value='gpio25' /></td></form></td></tr>

</table>

</body>
</html>

最佳答案

您的 html 无效:id 属性必须是唯一的。当您使用 document.getElementById() 且 id 不唯一时,您只能返回一个元素(在大多数浏览器中,它将是第一个元素)。

您可以传递对触发事件的特定元素的引用,如下所示:

<select id='makethisuniqueordeleteattributecompletelyifnotused'
onchange='ajaxFunction(this)'>

" is there any way to pass the $item and $action variables to "document.getElementById" without the need to create the text boxes?"

是的。由于它们只是字符串值,您可以这样做:

<select id='makethisuniqueordeleteattributecompletelyifnotused'
onchange='ajaxFunction(this,"set17","gpio17")'>

然后您可以更改函数以接受这些值,如下所示:

function ajaxFunction(el, action, item){
// selected value of select element in question:
var value = el.value;
alert("You entered: " + " " + value + " " + action + " " + item );
}

演示:http://jsfiddle.net/8ACHe/

关于Javascript 函数似乎总是接收相同的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20929957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com