是否有 Javascript offchange="" 函数,或通过使用 class 而不是值进行切换来复制它的方法?
Is there a Javascript offchange="" function, or a way to replicate it by toggling using a class instead of value?
这是我的 JS 小提琴:http://jsfiddle.net/2tjgebgq/1/
或者代码如下:
<input type="text" id="fieldname" name="deselected" />
<br>
<select multiple="multiple" onchange="updateInput(this.value)">
<option value="selected">Volvo</option>
<option value="selected">Saab</option>
<option value="selected">Opel</option>
<option value="selected">Audi</option>
</select>
Javascript:
function updateInput(deselected){
var element = document.getElementById("fieldname").name = deselected;
if (element == "") {
document.getElementById("fieldname").name = "deselected";
}
}
它的作用: 当 select 倍数中的任何内容被 selected 时,来自文本输入的 name="deselected" 属性上面,从 "deselected" 切换到 "selected",然后当 select 倍数中没有任何内容被 selected 时,名称从 "deselected" 切换到 "selected" .
它基于 VALUE="selected" 属性执行此操作。
我需要什么,但不知道怎么做:我需要它来做它现在做的事情,但是基于 CLASS="selected" 属性,而不是 VALUE="selected" 属性。
所以选项看起来像:
<option class="selected">Volvo</option>
而不是:
<option value="selected">Volvo</option>
没有 JQuery,只有 Javascript,随时更新 JSFiddle。
如果您只想更改输入上的 class(并假设没有其他 class 应用于它,因为这个简单的代码将覆盖任何其他 class元素):
function updateInput(select) { // NB: pass the select, not its value
document.getElementById("fieldname").className =
select.selectedOptions.length ? "selected" : "deselected";
}
这是我的 JS 小提琴:http://jsfiddle.net/2tjgebgq/1/
或者代码如下:
<input type="text" id="fieldname" name="deselected" />
<br>
<select multiple="multiple" onchange="updateInput(this.value)">
<option value="selected">Volvo</option>
<option value="selected">Saab</option>
<option value="selected">Opel</option>
<option value="selected">Audi</option>
</select>
Javascript:
function updateInput(deselected){
var element = document.getElementById("fieldname").name = deselected;
if (element == "") {
document.getElementById("fieldname").name = "deselected";
}
}
它的作用: 当 select 倍数中的任何内容被 selected 时,来自文本输入的 name="deselected" 属性上面,从 "deselected" 切换到 "selected",然后当 select 倍数中没有任何内容被 selected 时,名称从 "deselected" 切换到 "selected" .
它基于 VALUE="selected" 属性执行此操作。
我需要什么,但不知道怎么做:我需要它来做它现在做的事情,但是基于 CLASS="selected" 属性,而不是 VALUE="selected" 属性。
所以选项看起来像:
<option class="selected">Volvo</option>
而不是:
<option value="selected">Volvo</option>
没有 JQuery,只有 Javascript,随时更新 JSFiddle。
如果您只想更改输入上的 class(并假设没有其他 class 应用于它,因为这个简单的代码将覆盖任何其他 class元素):
function updateInput(select) { // NB: pass the select, not its value
document.getElementById("fieldname").className =
select.selectedOptions.length ? "selected" : "deselected";
}