关于jquery form select的疑惑

zheermao zheermao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想表单提交以后,如果是默认的选项,提交弹出一个窗口——提交不成功;如果选择一个下拉菜单(非默认),表单能正常提交。意思就是下拉菜单必须选择一个值,并且不是默认值。
我的网页是这样写的:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>HTML</title>
<script type="text/javascript" src="jquery-1.11.2.js"></script>
<script type="text/javascript" src="m-js5-f_test01.js"></script>
</head>

<body>
<form id="myForm" name="myForm" action="#" method="post">
<fieldset>
<label for="crust">Crust Type: </label>
<select name="crust">
<option value="">Please choose...</option>
<option value="thin">Thin</option>
<option value="deepdish">Deep Dish</option>
</select>
<br />
<hr />
<input type="submit" name="submitForm" />
</fieldset>
</form>
</body>
</html>

我原先想用正则表达式写JS,是这样写的:

$(document).ready(function(){

$('#myForm').submit(function(){
var formError=false;
if($(':select[name="crust"]:selected').val()==""){//select has no option, only default
formError=true;
}
if(formError){
alert("select must checked!");
return false;
}
else{
alert("Form valid, submitting to sever.");
return true;
}
});
});
//basic require submit

后来表单提交后没有任何弹窗。后来我上网搜索,修改了JS代码:
if($('select[name="crust"]option:selected').val()==""){ //select has no option, only default
formError=true;
}
提交后,还是不对,这次出现了弹窗,但是不论select是不是默认的值,都弹出表单提交成功的窗口。
再后来,我只能在FORM里的SELECT 中加上ID,
在JS中修改:
if($("#crustid").val()=="") {//select has no option, only default
formError=true;
}
表单在下拉菜单不是默认选项时如愿提交。

我想问大家的是:
获取下拉菜单的值能否用正则表达式?JS中我的正则表达式错在哪里?
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
zheermao
JavaScript 87,983 成员 224,681 内容