'的onsubmit'没有运行javascript函数

时间:2016-03-09 20:00:47

标签: javascript php jquery html

我一直试图在最后一小时左右弄清楚这一点无济于事。我甚至无法让它运行。

<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。任何帮助表示赞赏。

1 个答案:

答案 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属性,而您提供的typeid相同。 input属性在文档中必须是唯一的,否则您的HTML将无效。

id

此外,<div> <input type="submit" id="summaryNext"> </div> 不能是<div name='jobDiv'>的直接子项,它需要超出tr,或table内,{{1}应删除}}属性,因为它在td上也无效。

为了将来参考,您可以通过按 F12

检查开发人员工具控制台,快速诊断此类错误。