【问题标题】:Select not submitting onchange选择不提交 onchange
【发布时间】:2016-04-08 02:07:51
【问题描述】:

我已经查看并尝试了以下链接中的几种方法,但我的选择始终没有提交 onchange。

Javascript select onchange='this.form.submit()'

我的来源可以在这里看到:

http://xeroharm.com.au/settings/users/test.html

我使用的以下代码在我网站的某些地方有效,但在其他地方无效。我已经复制了源代码并进行了测试,因此您可以看到可能会阻止提交更改的内容。

选择代码是这样的:

<select id="mytrigger" name="EmployeeChange" data-placeholder="Change Employee..." class="chosen-select"  tabindex="2" onchange="myFunction()">
    <option value=""></option>
    <?php 
        $result = mysqli_query($conn,"SELECT * FROM Employee ORDER BY FirstName;");

        while($row = mysqli_fetch_array($result)){
            echo "<option value='".$row['Employee_ID']."'>".$row['FirstName']." ".$row['LastName']."</option>";
        }
    ?>
</select>

任何帮助将不胜感激。

【问题讨论】:

  • 请注意,onchange='this.form.submit()' 在 select 元素上将创建一个不可访问的界面,因为用户尝试使用键盘进行页面内导航并使用光标键更改选项,一些浏览器会提交一个每次更改选项时都会更改事件,无论这是否是用户想要的。
  • 你能告诉我们PHP的客户端结果吗?

标签: javascript html forms


【解决方案1】:

您的页面上存在脚本错误和语法错误。在 JavaScript 中,任何错误都会阻止脚本完全运行,这就是不触发 on change 事件的原因。

修复错误应该可以解决问题。看起来第一个是由于缺少 jQuery 依赖项。

[Error] ReferenceError: Can't find variable: $
    global code (test.html:42)
    global code (test.html:42)
[Error] ReferenceError: Can't find variable: $
    global code (test.html:326)
    global code (test.html:42)
[Error] SyntaxError: Unexpected token '<'
    (anonymous function) (login:1)

【讨论】:

  • 这是 PHP 代码。它并不意味着在客户端看到或由浏览器执行。
  • 我更改了 javascript 的顺序并且它起作用了。但是整个网站上的其他元素都被破坏了。我将不得不重新考虑如何为网站构建 javascript。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-16
相关资源
最近更新 更多