我有两个名为'primaryTag'和'primaryCategory'的选择框
primaryCategory取决于primaryTag
还有2个多选项,称为“标签”和“类别”。
当'primaryTag'发生变化时,应取消选择'tags'。
当'primaryCategory'更改时,应取消选择'categories'多选选项。 即使在primaryTags上的更改事件后'primaryCategory'发生更改,也应重置'categories'多选。
我有以下代码:
$('document').ready(function(){
$("#primaryTag").change(function () {
tagId = $("#{{ admin.uniqId }}_primaryTag option:selected").val();
$("#primaryCategory").val("option:first");
$("#tags *").attr("selected", false);
});
$("#primaryCategory").change(function () {
$("#categories *").attr("selected", false);
});
});
primaryTag
和primaryCategory
是选择框。
tags
和categories
是多选框。
当我更改primaryTag时,primaryCategory选择框会根据需要填充第一个选项的默认值。但是,我还希望重置类别多选框(取消选择所有选项)。而这种情况并没有发生。我怎么能做到这一点?
这是HTML
答案 0 :(得分:1)
$('document')
必须是$(document)
。之后记住默认的主要类别。在主标记更改时,设置默认主要类别并重置标记选项。在主要类别更改时,重置类别选项。
$(document).ready(function() {
var iDefault = $("#primaryCategory").val();
$("#primaryTag").change(function () {
$("#primaryCategory").val(iDefault);
$("#tags option").attr("selected", false);
});
$("#primaryCategory").change(function () {
$("#categories option").attr("selected", false);
});
});
另见this example。
=== UPDATE ===
如果要设置主要类别的第一个选项替换为:
$(document).ready(function() {
$("#primaryTag").change(function () {
$("#primaryCategory option:first").attr("selected", true);
$("#tags option").attr("selected", false);
});
$("#primaryCategory").change(function () {
$("#categories option").attr("selected", false);
});
});
另见this example。
=== UPDATE ===
如果您希望在重置主要类别后重置类别,请将第一个版本替换为:
$(document).ready(function() {
var iDefault = $("#primaryCategory").val();
$("#primaryTag").change(function () {
$("#primaryCategory").val(iDefault);
$("#primaryCategory").change();
$("#tags option").attr("selected", false);
});
$("#primaryCategory").change(function () {
$("#categories option").attr("selected", false);
});
});
答案 1 :(得分:0)
你可以使用onclick功能。
<element onclick="newfunction()"></element>
答案 2 :(得分:0)
基本上有两种方法可以使用jQuery清除多选框:
$("#my_select_box").val(null);
或
$("#my_select_box option").attr("selected",false);
第一个将select元素的值更改为nothing。第二个删除select元素中所有选项的选定属性。
我猜你的代码的效果是:
$("#my_select_box").attr("selected",false);
不起作用,因为#my_select_box
是实际的select元素。删除select元素本身的selected
属性无效,因为该属性仅对其中的选项有意义。
您必须尝试使用Firebug或Chrome中内置的开发人员工具。他们可以极大地帮助调试javascript和jQuery代码。