javascript - onChange 将动态选择返回 null

标签 javascript forms

我有两个选择框,第二个框取决于第一个框的选择。当第一个框 (subject) 更改时,我想让第二个选择框 (course) 的值为 null。任何有关完成此任务的帮助将不胜感激。

这是我尝试过的:

Javascript:

function autoSubmit() {
    var formObject = document.forms['theForm'];
    formObject.submit();
}

PHP:

<form name="theForm" method="get">
<select name="subject" onChange="autoSubmit();">
<option value="null">Select a Subject...</option>

<php
$sql = "SELECT DISTINCT subj_name, subj_id FROM table1 ORDER BY subj_name
$result = mysql_query($sql) or die ("couldn't execute query");

while($row = mysql_fetch_array($result))
{
echo ("<option value=\"$row[subj_id]\" " . ($subject == $row["subj_id"] ? " 
  selected" : "") . ">$row[subj_name]</option>");        
}
?>          
</select>

<select name="course" onChange="autoSubmit();">        
<option value="null">All Courses</option>        
<php
if($subject != null && is_numeric($subject))
{

$sql = "SELECT DISTINCT subj_id, course_id, course_name FROM table1 
  WHERE subj_id = $subject ORDER BY course_name
$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
{
echo ("<option value=\"$row[course_id]\" " . ($course == $row["course_id"] ? 
  " selected" : "") . ">$row[course_number] - $row[course_name]</option>");        
}
}

?>
</select>
</form>

最佳答案

您可以将第一个选择的 onChange 放在 autoSubmit() 之前:

this.form.course.value='null';

this.form.course.selectedIndex=0;

这样,get 上的值将是 ?subject=[the_subject]&course=null (然后 $course == $row["course_id"] 将是假的)。

( http://jsfiddle.net/HMT34/ )

关于javascript - onChange 将动态选择返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6839188/

相关文章:

php - 多个选择输入的数组

javascript - ejs从文件加载模板

javascript - 选择多个项目,而不仅仅是一个(angularJs)

iframe 中的 JavaScript 不起作用

javascript - 动态加载 reCAPTCHA

javascript - onStateChange将不会触发

jquery - JavaScript : how to change form action attribute value based on selection?

jQuery .append() 表单提交上的像素

css - 如何在 XHTML 中制作按钮计票

css - Rails select_tag css 与 options_from_collection_for_select