我一直试图在最后一小时左右弄清楚这一点无济于事。我甚至无法让它运行。
<form action='Summary2.php' method='post' id='summary2Form' onsubmit='return validateSummaryForm(this);'>
<table id='jobTable' align='center'>
<tr>
<div name='jobDiv'>
<td>
<p><font size='4'>Select Job Name: </font></p>
</td>
<td>
<select id="jobNameSelect" name="jobNameSelect">
<?php
print '<option></option>';
foreach($jobNumArray as $jobNum) {
print '<option>'.$jobNum.'</option>';
}
?>
</select>
</td>
</div>
</tr>
<tr>
<td></td>
<td>
<div type="submit" id="summaryNext">
<input type="submit" id="summaryNext">
</div>
</td>
</tr>
</table>
</form>
function validateSummaryForm(test) {
var e = document.getElementById(test.id);
var strUser = e.options[e.selectedIndex].text;
alert(strUser);
if(strUser == ""){
$("Table").effect("shake");
return false;
}
return true;
}
上面的html甚至不会运行javascript函数,它位于外部文件中。我的Import声明如下:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script type="text/javascript" src="../jQuery.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
../jQuery.js
是javascript函数的保存位置。这个文件也有很多jQuery,它们都可以在不同的网页上运行。 javascript函数只是在jQuery的末尾。我从代码中取出了大部分PHP。任何帮助表示赞赏。
答案 0 :(得分:1)
当您使用effect()
方法(jQueryUI的一部分)时,您需要在 jQuery.js
之后添加jquery-ui.min.js
脚本。试试这个:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="../jQuery.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
我还强烈建议您将jQuery.js
文件重命名为其他内容,因为这是一个非常具有误导性的名称。
您的验证逻辑也存在缺陷; e.options[e.selectedIndex]
至少会导致错误。假设您尝试确保选择option
,则只需检查父val()
的{{1}}即可。当您使用jQuery时,最好使用它来附加事件处理程序而不是过时的select
属性:
on*
<form action='Summary2.php' method='post' id='summary2Form'>
最后,HTML。 $('#summary2Form').submit(function(e) {
if ($('#jobNameSelect').val() == '') {
$("table").effect("shake");
e.preventDefault();
}
});
个元素没有div
属性,而您提供的type
与id
相同。 input
属性在文档中必须是唯一的,否则您的HTML将无效。
id
此外,<div>
<input type="submit" id="summaryNext">
</div>
不能是<div name='jobDiv'>
的直接子项,它需要超出tr
,或table
内,{{1}应删除}}属性,因为它在td
上也无效。
为了将来参考,您可以通过按 F12
检查开发人员工具控制台,快速诊断此类错误。