使用jQuery </select>基于多个<select>选项更改表单操作

时间:2012-02-24 01:13:01

标签: jquery html forms

我要做的是根据多个选项中的选定选项更改表单操作。在这种情况下,两个选择但相同的想法。我正在尝试将用户定向到提交时的特定网址。到目前为止,它确实指导用户,但它只返回一个“女性”,选择了“年龄”选项。年龄部分是正确的,但它不会区分“男性”或“女性”选项。所以我得到一个网址作为回报:http://domain.com/somepage.php#female_(age selection)

我是一个使用javascript的菜鸟,但我已经尝试了几个小时才能完成这项工作并且还在尝试。我确实得到了一些帮助:javascript - change form action based on selection?但仍未解决。非常感谢任何帮助!

标记:

<form action="">
    <fieldset>
        <select id="gender">
            <option value="male">male</option>
            <option value="female">female</option>
        </select>
        <select id="age">
            <option value="teen">teen</option>
            <option value="adult">adult</option>
        </select>
    </fieldset>
    <input type="submit" value="Submit">
</form>

jQuery的:

$("#gender").change(function() {
    var action = $(this).val() == "male";
        $("#age").change(function() {
    if ($(this).val() == "teen"){
        $("form").attr("action", "somepage.php#male_teen")};
    if ($(this).val() == "adult"){
        $("form").attr("action", "somepage.php#male-adult")};
    });
    var action = $(this).val() == "female";
        $("#age").change(function() {
    if ($(this).val() == "teen"){
        $("form").attr("action", "somepage.php#female-teen")};
    if ($(this).val() == "adult"){
        $("form").attr("action", "somepage.php#female-adult")};
    }); 
});

3 个答案:

答案 0 :(得分:2)

未经测试,但这样的事情可能是:

$("#gender, #age").on('change', function() {
    var gender = $("#gender").val(),
        age = $("#age").val(),
        site = "somepage.php#"+gender+"-"+age; //inconsistent use of -/_

        $("form").attr("action", site)};
    }); 
});

答案 1 :(得分:0)

为表单分配ID,然后

$('#formid').submit(function(){
  var gender = $("#gender").val();
  var age = $("#age").val();
  $("#formid").attr('action','somepage.php#'+gender+'-'+age);
});

甚至更好

$('#formid').submit(function(){
  var gender = $("#gender").val();
  var age = $("#age").val();
  $("#formid").attr('action','somepage.php#'+gender+'-'+age);
  if(gender == '' or age == ''){
    alert('Please select a gender and age');
    return false;
  }
});

答案 2 :(得分:0)

这样的事可能对你有用......

$("#age, #gender").change(function() {
    switch();
});

function switch(){

   // Build out this function with the rest of the logic
   // that you are checking for

   if($(form #age).val=='teen' && $(form #gender).val=='male'){
      $("form").attr("action", "somepage.php#male-teen")
   }
}