首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更改多个隐藏表单域

动态更改多个隐藏表单域
EN

Stack Overflow用户
提问于 2011-06-08 04:59:26
回答 2查看 968关注 0票数 0

我对jQuery有些陌生。我很确定这是可能的,但我不确定如何编码。

我想做的是使用一个带有代表范围的选择的下拉列表(例如,如果有人在搜索卧室,下拉选择将看起来像"0-2","3-5","6+")。然后,当有人选择一个选项时,两个隐藏字段将被动态填充。一个字段的范围最小,另一个字段的范围最大。

以下是我尝试构建此结构的示例:

代码语言:javascript
复制
    <select id="bedrooms" class="dropdown">
      <option>Bedrooms</option>
      <option></option>
      <option value="1">0-2</option>
      <option value="2">3-5</option>
      <option value="3">6+</option>
    </select>

    <input type="hidden" name="bedrooms-from" value=''>
    <input type="hidden" name="bedrooms-to" value=''>

我认为每个选项的价值都可以改变,我不确定最好的方法是什么。

EN

回答 2

Stack Overflow用户

发布于 2011-06-08 05:44:27

我还没有实际运行过,但我认为它应该可以工作:

代码语言:javascript
复制
$("#bedrooms").change(function ()
{
    // Get a local reference to the JQuery-wrapped select and hidden field elements:
    var sel = $(this);
    var minValInput = $("input[name='bedrooms-from']");
    var maxValInput = $("input[name='bedrooms-to']");

    // Blank the values of the two hidden fields if appropriate:
    if (sel.val() == "") {
        minValInput.val("");
        maxValInput.val("");
        return; 
    }

    // Get the selected option:
    var opt = sel.children("[value='" + sel.val() + "']:first");

    // Get the text of the selected option and split it on anything other than 0-9:
    var values = opt.attr("text").split(/[^0-9]+/);

    // Set the values to bedroom-from and bedroom-to:
    minValInput.val(values[0]);
    maxValInput.val((values[1] != "") ? values[1] : 99999999);
});
票数 1
EN

Stack Overflow用户

发布于 2011-06-08 05:04:00

代码语言:javascript
复制
$("select").on("change", function() {
    $("form").append( /* <input type='hidden'> tag here */ );
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6271584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档