我要做的是根据多个选项中的选定选项更改表单操作。在这种情况下,两个选择但相同的想法。我正在尝试将用户定向到提交时的特定网址。到目前为止,它确实指导用户,但它只返回一个“女性”,选择了“年龄”选项。年龄部分是正确的,但它不会区分“男性”或“女性”选项。所以我得到一个网址作为回报: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")};
});
});
答案 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")
}
}