0

我需要此代码才能与 Jquery / Jquery Mobile 一起使用,但由于某种原因它不适用于 JQM。有人可以帮我吗?谢谢!

Javascript 代码:无需 JQM 即可工作

<script type="text/javascript">
function changeOthers(idx, frm) {
    for (var i = 0; i < frm.elements.length; i++) {
        if ((frm.elements[i].type == 'select-one')) {
            frm.elements[i].selectedIndex = idx;
        }
    }
}
</script>

HTML 代码:我有多种形式。里面有一些选择列表,我需要为工作表单中的所有选择列表设置相同的选择索引。

<form name="form1">
    <select name="lst1" size="1" onChange="changeOthers(this.selectedIndex, this.form);">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
    <select name="lst2" size="1" onChange="changeOthers(this.selectedIndex, this.form);">
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
</form>

<form name="form2">
    <select name="lst1" size="1" onChange="changeOthers(this.selectedIndex, this.form);">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
    <select name="lst2" size="1" onChange="changeOthers(this.selectedIndex, this.form);">
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
</form>
4

1 回答 1

0

我对 jquery mobile 不太熟悉,但我对 jquery ui 确实有一些经验。每当修改控件时,通常需要对该控件进行“更新”。

对于您的代码,在您的函数中插入这一行,在索引更改操作之后:

$("select").selectmenu("refresh");

有关该方法的更多信息,请参见此处

演示

function changeOthers(idx, frm) {
    for (var i = 0; i < frm.elements.length; i++) {
        if (frm.elements[i].type == 'select-one') {
            frm.elements[i].selectedIndex = idx;
            $("select").selectmenu("refresh");
        }
    }
}
于 2013-06-14T08:03:26.253 回答