我正在尝试向表单添加功能,当用户从选择列表中选择包含值 yes 的选项而不使用提交按钮时,该表单将提交。以下是链接:http://juiceme.no/phpmail/。
<?php
//if "email" variable is filled out, send email
if (isset($_REQUEST['email'])) {
//Email information
$admin_email = "syhunk835@gmail.com";
$email = $_REQUEST['email'];
$subject = $_REQUEST['subject'];
$select = $_REQUEST['select'];
//send email
mail($admin_email, "$subject", $select, "From:" . $email);
//Email response
echo "Thank you for contacting us!";
}
//if "email" variable is not filled out, display the form
else {
?>
<form method="post">
Email: <input name="email" type="text" /><br />
Subject: <input name="subject" type="text" /><br />
Message:<br />
<!--<textarea name="comment" rows="15" cols="40"></textarea><!-->
<select id="select" name="select">
<option value="yes">More View</option>
<option value="yes">Yes</option>
<option value="NO">No</option>
</select>
<br />
<input type="submit" value="Submit" />
</form>
<?php
}
?>
问题是,当用户在选择框中选择包含是的选项时,我无法提交表单。
答案 0 :(得分:0)
您可以将此内联JS添加到select
下拉列表
onchange="if(this.value==='yes')this.form.submit()"
像:
<form method="post">
Email: <input name="email" type="text" /><br />
Subject: <input name="subject" type="text" /><br />
Message:<br />
<select id="select" name="select" onchange="if(this.value==='yes')this.form.submit()">
<option value="yes">More View</option>
<option value="yes">Yes</option>
<option value="NO">No</option>
</select>
</form>
答案 1 :(得分:0)
我会添加一个onchange处理程序(并删除提交输入)。如果他们点击“是”,您可以提交到可以生成电子邮件的服务器,并且可以返回空表单。如果他们点击否,你不必做任何事情(或者你可以清除输入,这样他们可以再试一次,也许)。
您可以像这样获得您选择的价值:
$('#select').on('change', function() {
if (this.value === 'Yes') {
// submit to server so we generate an email
} else {
// do nothing or clear inputs?
}
})