Javascript在下拉更改时设置隐藏的表单值

时间:2009-05-02 21:37:50

标签: javascript jquery

javascript新手,但我确信这很容易。不幸的是,大多数谷歌搜索结果都没有用。

无论如何,我想在下拉选项发生变化时通过javascript设置隐藏表单元素的值。

我可以使用jQuery,如果它更容易获取或设置值。

8 个答案:

答案 0 :(得分:66)

如果你有这样的HTML,例如:

<select id='myselect'>
    <option value='1'>A</option>
    <option value='2'>B</option>
    <option value='3'>C</option>
    <option value='4'>D</option>
</select>
<input type='hidden' id='myhidden' value=''>

你需要做的就是bind a function to the change event of the select,并在那里做你需要的事情:

<script type='text/javascript'>
$(function() {
    $('#myselect').change(function() {
        // if changed to, for example, the last option, then
        // $(this).find('option:selected').text() == D
        // $(this).val() == 4
        // get whatever value you want into a variable
        var x = $(this).val();
        // and update the hidden input's value
        $('#myhidden').val(x);
    });
});
</script>

考虑到所有事情,如果您要进行大量的jQuery编程,请始终打开documentation。如果你给它一个机会,很容易找到你需要的东西。

答案 1 :(得分:10)

普通的旧Javascript:

<script type="text/javascript">

function changeHiddenInput (objDropDown)
{
    var objHidden = document.getElementById("hiddenInput");
    objHidden.value = objDropDown.value; 
}

</script>
<form>
    <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </select>

    <input type="hidden" name="hiddenInput" id="hiddenInput" value="" />
</form>

答案 2 :(得分:8)

我很久以来一直在努力$('#myelement').val(x)只是没有工作......直到我意识到#构造需要一个ID,而不是一个NAME。所以如果“.val(x)不起作用!”是你的问题,检查你的元素,并确保它有一个ID!

这是一个令人尴尬的问题,但我觉得我必须分享以挽救其他人的头发。

答案 3 :(得分:3)

在这里,您可以在下拉列表的onchange事件中设置隐藏值:

$('#myDropDown').bind('change', function () {
  $('#myHidden').val('setted value');
});

你的隐藏和下拉列表:

<input type="hidden" id="myHidden" />

<select id="myDropDown">
   <option value="opt 1">Option 1</option>
   <option value="opt 2">Option 2</option>
   <option value="opt 3">Option 3</option>
</ select>

答案 4 :(得分:2)

这是jQuery。

$('#selectFormElement').change( function() {
    $('#hiddenFormElement').val('newValue');
} );

在html中

<select id="selectFormElement" name="..."> ... </select>
<input type="hidden" name="..." id="hiddenFormElement" />

答案 5 :(得分:2)

只是为了与众不同,改变了我的答案,以便这个问题没有相同代码的5个答案。

<html>
<head>
   <title>Page</title>  
   <script src="jquery-1.3.2.min.js"></script>
   <script>
       $(function() {
           var select = $("body").append('<form></form>').children('form')
                .append('<input type="hidden" value="" />').children('input[type=hidden]')
                .attr('id', 'hiddenValue').end()
                .append('<select></select>').children('select')
                .attr('id', 'dropdown')
                .change(function() {
                    alert($(this).val());
                });

           $.each({ one: 1, two: 2, three: 3, four: 4, five: 5 }, function(txt, val) {
               select.append('<option value="' + val + '">' + txt + '</option>');
           });
       });
</script>
</head>
   <body></body>
</html>

答案 6 :(得分:1)

<form>
  <input type="hidden" name="selval">
  <select onchange="this.form.selval.value=this.selectedIndex">
    <option>val1</option>
    <option>val2</option>
  </select>
</form>

表单中的纯javascript

答案 7 :(得分:0)

$(function() {
$('#myselect').change(function() {
   $('#myhidden').val =$("#myselect option:selected").text();
    });
});