我有这个选择框从我的数据库中获取数据。 我想要做的是在我的选择框旁边添加编辑和删除按钮,这些按钮将对当前所选选项执行相应的操作。
所以我添加了两个按钮,指向完成所有这些工作的php脚本。 我的问题是JavaScript,我需要更新按钮的元素。
但是我的JS功能不起作用。 它似乎甚至没有被解雇。
HTML:
<select name='selectHotel' onChange='updateButtons(this.options[this.selectedIndex].text)'>
<option value="volvo.php">Volvo</option>
<option value="saab.php">Saab</option>
<option value="mercedes.php">Mercedes</option>
<option value="audi.php">Audi</option>
</select>
<a href='' id='editButton'><button>Edit</button></a>
<a href='' id='deleteButton'><button>Delete</button></a>
JavaScript的:
function updateButtons(var) {
element = document.getElementById('editButton');
element.href = var;
}
答案 0 :(得分:2)
您不能将var
用作变量名称 - var
是javascripts保留字。
答案 1 :(得分:1)
jsFiddle的onLoad
选项将您的代码包装在回调函数中
因此,您的函数定义在代码外部不可见。
您需要选择No Wrap
。
答案 2 :(得分:1)
你的逻辑和小提琴本身有几个问题。
不使用JavaScript库的最佳方法是将onchange
处理程序附加到窗口的onload
中并处理其中的所有内容:
window.onload = function() {
var oDDL = document.getElementById("selectHotel");
oDDL.onchange = function updateButtons() {
var oLink = document.getElementById('editButton');
oLink.href = oDDL.value;
};
oDDL.onchange();
};
要使其有效,请将id="selectHotel"
添加到<select>
元素,然后从中删除内联onchange
。
在你最初的小提琴中,你没有选择合适的框架属性。
请注意,我手动调用onchange
一次以反映所选值,否则在选择其他值之前单击按钮将无效。
答案 3 :(得分:0)
您刚刚在onchange
函数
onChange='updateButtons(this.options[this.selectedIndex].value)'
您可以尝试这样的事情:
window.updateButtons = function(value) {
element = document.getElementById('editButton');
var url = window.location.href;
element.href = url + value;
console.log(element.href);
}