Javascript 单击单选按钮清除所有选项选择条目
我一整天都在试图弄明白这一点,这似乎很简单,但我如何才能清除一组选择选项下拉列表中的所有选择?我想让它们回到第一次加载div时的默认状态。我无法使用.reset,因为表单中还有其他信息需要收集,但我需要允许用户改变主意,而不必重新填写表单 这个问题告诉你我不需要什么 这个问题很难回答,但我一直没能让它起作用 这似乎意味着它可以用.empty完成,但这也不起作用 这个,我已经试过了,所有的都看下面的代码,没有一个有效。我显然错过了什么 这里有一个问题的答案 如何看待小提琴中的问题: 在修复状态下,单击“已修复”;将显示两个新输入,一组单选按钮,然后为每个按钮选择选项下拉列表。在“类别”下,选择“零件质量”,然后从下拉列表中选择任何项目。该选项现在应该显示在下拉列表中。现在单击任何一个其他类别,然后返回零件质量。您刚才所做的相同选择仍将显示,而不是默认的“选择零件质量原因”,这正是我想要的 我的尝试主要集中在用于概念验证的Part Quality(零件质量)单选按钮上,但生产代码需要清除表单中所有选项选择中的所有条目(Reporting Department(报告部门)下拉列表除外)。最好我可以使用带有$this构造的泛型选择,但这不是必需的。大概是这样的:Javascript 单击单选按钮清除所有选项选择条目,javascript,jquery,html,jquery-mobile,Javascript,Jquery,Html,Jquery Mobile,我一整天都在试图弄明白这一点,这似乎很简单,但我如何才能清除一组选择选项下拉列表中的所有选择?我想让它们回到第一次加载div时的默认状态。我无法使用.reset,因为表单中还有其他信息需要收集,但我需要允许用户改变主意,而不必重新填写表单 这个问题告诉你我不需要什么 这个问题很难回答,但我一直没能让它起作用 这似乎意味着它可以用.empty完成,但这也不起作用 这个,我已经试过了,所有的都看下面的代码,没有一个有效。我显然错过了什么 这里有一个问题的答案 如何看待小提琴中的问题: 在修复状态下,
$("select option:selected").each(function () {
$(this).val(''); //doesn't work
});
要求:
当用户选择不同的单选按钮类别时,所有选项选择下拉列表将重置为其默认状态。这样,当用户做出最终选择&点击Submit时,就不会有额外的条目。当他们更改类别选择时,基础代码必须保留Reporting Department下拉选项
然后,我可以收集他们的所有选择,并将其放入JSON字符串中,以便AJAX调用我的代码,然后将数据插入MySQL数据库
我不管答案是使用jQuery还是纯JavaScript,我都可以很高兴地使用
以下是一些尚未解决问题的尝试:
$("#formEvent_repair input[type='radio']").on('change', function () {
//$("#select_part_quality_repair option:selected").attr("selected", false);
//$("#select_part_quality_repair").find('[selected]').removeAttr("selected");
//$('#select_part_quality_repair').attr('selectedIndex', '-1');
//$('#select_part_quality_repair').val(null);
$("#select_part_quality_repair").find('option:first').attr('selected','selected');
//$("select option:selected").val([]);
//$("select option:selected").html('');
//$("select_part_quality_repair").html('');
$("select_part_quality_repair").append().html('');
$("select option:selected").each(function () {
console.log("Emptying select options");
$("#select_part_quality_repair").find('option:first').attr('selected','selected');
//#select_part_quality_repair-button > span
//$("#select_part_quality_repair").prop('selectedIndex', -1);
//$("#select_part_quality_repair").find('option').attr("selected", false);
//$("#select_part_quality_repair option").attr("selected", false);
$("#select_part_quality_repair option:selected").attr("selected", false);
console.log(this);
$(this).val([]);
});
您可以按如下方式清除下拉选择:
$("select option:selected").each(function () {
$(this).val(''); //doesn't work
});
$select_part_quality_repair.val;
这将清除所选内容而不删除成员。
此外,代码中的此行格式不正确:
$select\u part\u quality\u repair.append.html
您忘了按照JQuery的要求,将元素ID放在元素ID之前。这句话无论如何也帮不了你,所以你甚至不应该为它费心
干杯
-=Cameron因为您使用的是jquery mobile,所以需要向更改的元素发出刷新命令
$('#select_part_quality_repair').val('').selectmenu('refresh');
这将取消选择任何选项,然后刷新布局以显示更改
对于在“代码使用”中设置的单选按钮
$(<radio-button-selector>).checkboxradio("refresh");
取消选中所有单选按钮
$(".clear").click(function(){
$('input:radio').each(function () {
$(this).removeAttr("checked");
});
});
编辑2:
取消选择所有选项
$(".clear").click(function(){
$('select').each(function () {
$(this).removeAttr("selected");
});
});
快速看一看,我想说您应该为selects处理onchange事件,当它被触发时,您可以这样做:$'select'.notthis.val。您可能已经有了这个想法。摆弄代码的相关部分会很有用,例如,只需一个带有清晰按钮的选择菜单。JSFIDLE链接在问题中大约有10-12行。如果添加一个数据属性,将收音机链接到其相对选择,则可以执行我在第一条注释中提到的操作。这也会减少你的代码。@delliottg我的意思是只使用一个/2个选择创建一个小提琴,减少你的代码以更好地关注选择刷新问题,删除所有点击这个然后那个,而不是这个部分。谢谢,已经尝试过了,但不起作用。你的想法完全正确,我没有指出我现在正在使用添加到标签的jQuery Mobile,这需要刷新Gaby和BeNdeRr的“查看答案/评论”。谢谢,但我正在尝试清除所有选项选择菜单,而不是单选按钮。抱歉,编辑2已修复。仍然不起作用,请查看上面接受的答案。感谢您的帮助,我非常感谢。