2012-02-24 76 views
2

我想要做的是根據多個選擇中的選定選項更改表單動作。在這種情況下,兩個選擇,但同樣的想法。我試圖在提交時將用戶指向特定的網址。到目前爲止,它確實指導了用戶,但只有選擇了「年齡」選項纔會返回「女性」。年齡部分是正確的,但不會區分「男性」或「女性」選項。所以我得到了一個網址的回報如:http://domain.com/somepage.php#female_(age selection)基於多個<select>選項使用jQuery更改表單動作

我是一個JavaScript的noob但我一直在嘗試幾個小時,使這項工作,仍然嘗試。我得到了一些幫助: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")}; 
    }); 
}); 

回答

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)}; 
    }); 
}); 
+0

這個工作完美。謝謝! – JNN24 2012-02-24 03:52:24

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; 
    } 
}); 
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") 
    } 
} 
相關問題