我有工作脚本,它会从网站发送电子邮件到一些电子邮件。
问题是:如果用户忘记从选择框中选择值(值=电子邮件到PHP数组中的mail@mail.com),我的脚本会抛出警告“选择一个值!”但是用户写的所有数据都将从所有选择框中删除。
有什么办法可以避免吗?
JS:
function formSubmit() //onclick "Submit" button
{
var selectedValue = document.getElementById("sendTo").value;
if(selectedValue="99")
{
alert("Choose a value!");
}
else
{
//working ajax script which is sending emails
}
}
HTML:
<label class="company_emails">
<select id="sendTo">
<option value="99">Choose a department</option>
<option value="0">Justice</option>
<option value="1">Injustice</option>
<option value="2">Potatoes</option>
<option value="3">Mushrooms</option>
</select>
</label>
答案 0 :(得分:1)
如果出现错误,您必须停止提交,否则表单将被提交并再次为空。
function formSubmit() {
var selectedValue = document.getElementById("sendTo").value;
if( selectedValue == "99" ) {
alert("Choose a value!");
// return false will stop the submit
return false;
}
}
但如果你在一个按钮上使用onclick
进行操作,你必须使用它返回:
<button type="submit" onclick="return formSubmit();">send</button>
甚至更好,如果你有jQuery可用,只需在表单提交上注册一个监听器并使用preventDefault
。这是最好的方式imo。
$("form").on("submit", function(e) {
if( $("#sendTo").val() == "99" ) {
alert("Choose a value!");
// will stop the submit
e.preventDefault();
}
});
正如用户@Carr所说,您在=
声明中遗漏了if
。
答案 1 :(得分:1)
JavaScript代码
<script type="text/javascript">
function formSubmit() //onclick "Submit" button
{
var selectedValue = document.getElementById("sendTo").value;
if(selectedValue="99")
{
alert("Choose a value!");
return false;
}
else
{
//working ajax script which is sending emails
}
}
</script>
需要按钮的返回关键字点击方法如下所示。
<input type="submit" value="submit" onclick="return formSubmit()"/>