使用jQuery基于多个选项更改表单操作
我试图做的是根据从多个选择中选择的选项更改表单操作。在这种情况下,有两个选择,但想法相同。我试图在提交时将用户指向特定的url。到目前为止,它确实指导用户,但它只返回一个选择了任何年龄选项的女性。年龄部分是正确的,但不会区分男性和女性。所以我得到了一个url作为回报,比如:http://domain.com/somepage.phpfemale\u age selection 我对javascript很在行,但我已经尝试了好几个小时来实现这一点,而且还在努力。我确实得到了一些帮助:但仍然没有解决。非常感谢您的帮助 标记:使用jQuery基于多个选项更改表单操作,jquery,html,forms,Jquery,Html,Forms,我试图做的是根据从多个选择中选择的选项更改表单操作。在这种情况下,有两个选择,但想法相同。我试图在提交时将用户指向特定的url。到目前为止,它确实指导用户,但它只返回一个选择了任何年龄选项的女性。年龄部分是正确的,但不会区分男性和女性。所以我得到了一个url作为回报,比如:http://domain.com/somepage.phpfemale\u age selection 我对javascript很在行,但我已经尝试了好几个小时来实现这一点,而且还在努力。我确实得到了一些帮助:但仍然没有解决
<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>
未经测试,但可能类似于以下内容:
$("#gender, #age").on('change', function() {
var gender = $("#gender").val(),
age = $("#age").val(),
site = "somepage.php#"+gender+"-"+age; //inconsistent use of -/_
$("form").attr("action", site)};
});
});
为表单分配一个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;
}
});
像这样的东西可能适合你
$("#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")
}
}
$("#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")
}
}