如何将值从一个选择更改为另一个?

时间:2011-10-20 09:35:16

标签: javascript jquery

我有两个选择,在html代码中有几个选项:

<select name="t" id="t">
<option value="0">Overall</option>
<option value="1">t_name</option></select>

<select name="m" id="m">
<option value="0">back to Overall</option>
<option value="1">m_some</option></select>

我的问题是如何强制改变值从第一个选择名为“t”到“0”(整体)仅在用户选择值“0”(返回总体)在第二个选择名为“m”的情况下?并在最后提交表格。

- 编辑 -

现在因为我尝试的建议以这种方式做到了:

<script>
$(function(){
  $('#m, #t').change(function(){
    if($('#m').val() == '0')
      $('#t').val('0').change();
      $('form#myform').submit();   
  });
});
</script>

此脚本每次更改时都会提交表单选择“m”或“t”,但我更改时的情况选择“m”到值“0”(脚本只能以正确的方式将“t”更改为“0”没有提交)。为什么呢?

4 个答案:

答案 0 :(得分:1)

<html>
<body>
    <form name="form1" id="form1">
    <select id="t" name="t" onchange="this.form.submit();">
        <option value="0">Overall</option>
        <option value="1">t_name</option>
    </select>
    <select name="m" onchange="setposition(this.value)">
        <option value="0">back to Overall</option>
        <option value="1">m_some</option>
    </select>




    </form>
</body>
</html>

<script language="javascript" type="text/javascript">

    function setposition(svalue) {
        if (svalue == "0") {
            document.getElementById("t").options[1].selected = true;
        }
    }
</script>`enter code here`

答案 1 :(得分:0)

$('select[name="m"]').change(function() {
    if($(this).val() == '0') {
        $('select[name="t"]').val('0');
    }
});

除此之外,您应该使用jQuery来设置onchange事件,而不是通过内联JS来实现:

$('select[name="t"], select[name="m"]').change(function() {
    $(this).closest('form').submit();
    // if you do not need any jquery submit events,
    // you can also use this.form.submit();
});

请参阅http://jsfiddle.net/ThiefMaster/NfVQZ/了解演示。

答案 2 :(得分:0)

您应该使用以下ID,因为它们在DOM搜索时更容易。

<select name="t" id="t" onchange="this.form.submit();">
<option value="0">Overall</option>
<option value="1">t_name</option></select>

<select name="m" id="m" onchange="this.form.submit();">
<option value="0">back to Overall</option>
<option value="1">m_some</option></select>

<script>
$(function(){
  $('#m, #t').change(function(){
    //don't forget to trigger the change event
    if($('#m').val() == '0')
      $('#t').val('0').change();

      $('form#form_id').submit();   
  });
});
</script>

答案 3 :(得分:0)

你可以这样做:

$(function(){
   $('[name="t"],[name="m"]').change(function(){
       if($(this).attr('name')=='m') && $(this).val()=='0'){
           $('[name="t"]').val('0');
       }

       $(this).closest('form').submit();
   });
});