jQuery:根据选择值更改“操作”
我编写了这段代码,它根据您在第一次选择中选择的内容更改第二次选择 但是现在我需要jQuery中的一种方法来根据第一次选择时选择的内容更改表单操作 如果选择了选项1,我想要action=renault.php;如果在第一次选择时选择了选项2,我想要action=citroen.php 我还想被要求同时选择两个选项,因此必须在每个选项上选择至少一个选项,如果有人没有这样做并点击提交,则会发出警报,告诉他们请选择至少一个品牌和一个型号 我试过好几种密码,但都没用 此外,如果该人员选择了一个型号或品牌,则还应显示警报,要求选择至少一个型号和品牌 有人能帮忙吗 代码:jQuery:根据选择值更改“操作”,jquery,html,Jquery,Html,我编写了这段代码,它根据您在第一次选择中选择的内容更改第二次选择 但是现在我需要jQuery中的一种方法来根据第一次选择时选择的内容更改表单操作 如果选择了选项1,我想要action=renault.php;如果在第一次选择时选择了选项2,我想要action=citroen.php 我还想被要求同时选择两个选项,因此必须在每个选项上选择至少一个选项,如果有人没有这样做并点击提交,则会发出警报,告诉他们请选择至少一个品牌和一个型号 我试过好几种密码,但都没用 此外,如果该人员选择了一个型号或品牌,
您可以使用表单[name='frmPreselect']来选择表单,当然也可以使用frmPreselect,但我不会只使用$form,因为如果您在接下来的两个月向页面添加第二个表单,这会给您带来问题。您也可以等待设置操作,直到提交表单:
$('#frmPreselect').submit(function (e) {
var sel1 = $('#selectOne');
var sel2 = $('#selectTwo');
if (sel1[0].selectedIndex == 0 || sel2[0].selectedIndex == 0) {
e.preventDefault(); //don't submit
alert('You forget something!'); //alert
return;
}
var frm = $(this);
if (sel1.val() == 1)
frm.attr('action', 'http://blabla'); //set some action
//etc. etc.
//in the end it will submit the form.
});
完成下面的示例,但即使我没有看到代码,我也非常确定citroen.php和renault.php没有太大区别,因此我建议使用car.php处理品牌和型号 PS:你应该看看一些非侵入性的验证插件,看看这个例子
<html>
<head>
<title>S.O. 4117106</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#selectOne').change(function() {
var options = '<option value="0">-- select a model --</option>';
if($(this).val() == '1') {
options += '<option value="clio">clio</option>';
options += '<option value="symbol">symbol</option>';
options += '<option value="sandero">sandero</option>';
} else if ($(this).val() == '2'){
options += '<option value="Berlingo">Berlingo</option>';
options += '<option value="C3">C3</option>';
options += '<option value="C4">C4</option>';
}
$('#selectTwo').html(options);
});
$('#frmPreselect').submit(function() {
if ($('#selectOne').val() == '0' || $('#selectTwo').val() == '0') {
alert('please select at least one brand and one model');
return false; // don't submit
}
var action = '';
if($('#selectOne').val() == '1') {
action = 'renault.php';
} else if ($('#selectOne').val() == '2'){
action = 'citroen.php';
}
$(this).attr('action', action);
return true; // submit
});
$('#selectOne').change();
});
</script>
<style type="text/css">
select, .bigSubmit {
font-size: 16px;
font-family: Verdana, Geneva, sans-serif;
}
#selectOne {
margin-right: 20px;
}
.bigSubmit {
font-size: 20px;
font-weight:bold;
}
</style>
</head>
<body>
<form id="frmPreselect" name="frmPreselect" method="post" action="">
<p>
<select name="selectOne" id="selectOne">
<option value="0">-- select a Brand --</option>
<option value="1">Renault</option>
<option value="2">Cïtroen</option>
</select>
<select name="selectTwo" id="selectTwo">
</select>
</p>
<p>
<input type="submit" value="SOLICITAR PRESUPUESTOS" class="bigSubmit" />
</p>
</form>
</body>
</html>
开关中的值不是真的是1,2吗?哎呀,是的,他们会-很抱歉,没有检查他在选项值中实际输入的内容。这很清楚,切中要害,完全符合我的需要。没问题,很高兴它为您工作!其他一些答案还有其他一些好的技巧,你可能也希望将其纳入其中。应该是actions[1]=雷诺;行动[2]=雪铁龙;如果使用过的Web服务器是在区分大小写的OSI上,我对您关于使用car.php的建议感到好奇,我很想这样集中,但问题是我在renault.php citroen.php等上有不同的表单,所以我必须动态构建car.php?根据所选品牌选择合适的形式,我想?@sebastian,类似的东西是的,但你可以在你的案例中包括具体的零件形式。我的观点是你应该避免重复的代码
$("selectOne").change(function(){
switch($(this).val())
{
case "1" : $("form[name='frmPreselect']").attr("action","http://foo"); break;
case "2" : $("form[name='frmPreselect']").attr("action","http://bar"); break;
default : $("form[name='frmPreselect']").attr("action","http://foo");
}
});
$('#frmPreselect').submit(function (e) {
var sel1 = $('#selectOne');
var sel2 = $('#selectTwo');
if (sel1[0].selectedIndex == 0 || sel2[0].selectedIndex == 0) {
e.preventDefault(); //don't submit
alert('You forget something!'); //alert
return;
}
var frm = $(this);
if (sel1.val() == 1)
frm.attr('action', 'http://blabla'); //set some action
//etc. etc.
//in the end it will submit the form.
});
<html>
<head>
<title>S.O. 4117106</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#selectOne').change(function() {
var options = '<option value="0">-- select a model --</option>';
if($(this).val() == '1') {
options += '<option value="clio">clio</option>';
options += '<option value="symbol">symbol</option>';
options += '<option value="sandero">sandero</option>';
} else if ($(this).val() == '2'){
options += '<option value="Berlingo">Berlingo</option>';
options += '<option value="C3">C3</option>';
options += '<option value="C4">C4</option>';
}
$('#selectTwo').html(options);
});
$('#frmPreselect').submit(function() {
if ($('#selectOne').val() == '0' || $('#selectTwo').val() == '0') {
alert('please select at least one brand and one model');
return false; // don't submit
}
var action = '';
if($('#selectOne').val() == '1') {
action = 'renault.php';
} else if ($('#selectOne').val() == '2'){
action = 'citroen.php';
}
$(this).attr('action', action);
return true; // submit
});
$('#selectOne').change();
});
</script>
<style type="text/css">
select, .bigSubmit {
font-size: 16px;
font-family: Verdana, Geneva, sans-serif;
}
#selectOne {
margin-right: 20px;
}
.bigSubmit {
font-size: 20px;
font-weight:bold;
}
</style>
</head>
<body>
<form id="frmPreselect" name="frmPreselect" method="post" action="">
<p>
<select name="selectOne" id="selectOne">
<option value="0">-- select a Brand --</option>
<option value="1">Renault</option>
<option value="2">Cïtroen</option>
</select>
<select name="selectTwo" id="selectTwo">
</select>
</p>
<p>
<input type="submit" value="SOLICITAR PRESUPUESTOS" class="bigSubmit" />
</p>
</form>
</body>
</html>