在通过javascript选择选项之前取消选择选项
我有一个问题,在一个表单中有多个选择按钮,单击每个按钮应选择同一选择框的不同选项。如果我在onclick时传递一个值,下面的代码可以正常工作,但是如果没有传递值,则保留旧值,而不是将其设置为nul 在选择刷新选项之前尝试了formname.reset,但这根本不是选择任何值 例如,单击select1并选择select box的第一个值。单击select2而不是将其自身重置为null后,将显示旧值1。选择3再次正常工作,选择选择框的第二个值在通过javascript选择选项之前取消选择选项,javascript,jquery,Javascript,Jquery,我有一个问题,在一个表单中有多个选择按钮,单击每个按钮应选择同一选择框的不同选项。如果我在onclick时传递一个值,下面的代码可以正常工作,但是如果没有传递值,则保留旧值,而不是将其设置为nul 在选择刷新选项之前尝试了formname.reset,但这根本不是选择任何值 例如,单击select1并选择select box的第一个值。单击select2而不是将其自身重置为null后,将显示旧值1。选择3再次正常工作,选择选择框的第二个值 <script> fun
<script>
function editvalues(arr)
{
$('#parent_id option[value='+arr+']').attr('selected','selected');
}
</script>
<a href="javascript:void(0);" onclick="editvalues(1)">Select1</a>
<a href="javascript:void(0);" onclick="editvalues()">Select2</a>
<a href="javascript:void(0);" onclick="editvalues(2)">Select3</a>
<select id="parent_id" name="parent_id">
<option value=''>Select Any</option>
<option value='1'>First</option>
<option value='2'>Second</option>
</select>
如果未传递任何参数,请将值设置为
$('#parent_id option[value='+(arr || '')+']').attr('selected','selected');
在上面的代码中,如果arr | |传递给函数,它将返回arr。否则它将返回恰好是表示无选择的的值。在您的情况下,使用val方法将解决此问题:
function editvalues(arr) {
$('#parent_id').val(arr);
}
不过,您应该考虑使用jQuery,而不是旧的内联处理程序。例如:
<a href="#" class="select" data-value="1">Select1</a>
<a href="#" class="select" data-value="">Select2</a>
<a href="#" class="select" data-value="2">Select3</a>
演示:您可以首先帮助任何选择:
function editvalues(arr)
{
//deselect 1st
$("#parent_id option:selected").prop("selected", false)
//then select passed in value
$('#parent_id option[value='+arr+']').attr('selected','selected');
}
在这种情况下,JSFIDLE使解决问题变得更加容易。其思想是在为其分配新值之前将其设置为nulleverytime@Majid-不能同时取消选择所有选项。必须选择一个选项。从您的HTML中,第一个选项“选择任何”似乎是表示“无选择”的选项。我最不希望这会起作用。非常感谢:很高兴你详细的回答,尽管早些时候的回答起了作用。实际的代码有非常繁琐的循环,所以我简化了它,以便更好地理解这个问题。谢谢你的回复。这帮了大忙
function editvalues(arr)
{
//deselect 1st
$("#parent_id option:selected").prop("selected", false)
//then select passed in value
$('#parent_id option[value='+arr+']').attr('selected','selected');
}