在通过javascript选择选项之前取消选择选项

在通过javascript选择选项之前取消选择选项,javascript,jquery,Javascript,Jquery,我有一个问题,在一个表单中有多个选择按钮,单击每个按钮应选择同一选择框的不同选项。如果我在onclick时传递一个值,下面的代码可以正常工作,但是如果没有传递值,则保留旧值,而不是将其设置为nul 在选择刷新选项之前尝试了formname.reset,但这根本不是选择任何值 例如,单击select1并选择select box的第一个值。单击select2而不是将其自身重置为null后,将显示旧值1。选择3再次正常工作,选择选择框的第二个值 <script> fun

我有一个问题,在一个表单中有多个选择按钮,单击每个按钮应选择同一选择框的不同选项。如果我在onclick时传递一个值,下面的代码可以正常工作,但是如果没有传递值,则保留旧值,而不是将其设置为nul

在选择刷新选项之前尝试了formname.reset,但这根本不是选择任何值

例如,单击select1并选择select box的第一个值。单击select2而不是将其自身重置为null后,将显示旧值1。选择3再次正常工作,选择选择框的第二个值

    <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');
  }