【问题标题】:JavaScript alert doesn't showJavaScript 警报不显示
【发布时间】:2011-11-17 11:31:46
【问题描述】:

我正在尝试构建一个选择选项菜单。如果用户选择第一个(默认)选项,则应该显示警报窗口,但不会显示。需要帮助,谢谢!

这是我的html代码

    <select name="sets" id ="selectset">
        <option value="General">Select Set</option>
        <option value="The Happy Couple">Ceremony</option>
        <option value="Ceremony">Ceremony</option>
        <option value="Lunch">Lunch</option>
        <option value="Garden">Garden</option>
        <option value="Longname">This is max length</option>
      </select>
     <input type="button" class="form_button" id="movetoset" value="  Move Marked to Set">

这是我的 javascript 代码

    $('#movetoset').click(function() {      

              if(document.getElementById("selectset").value == "General"){
                  alert("Please choose a set");
              }
    }

【问题讨论】:

  • 是的,我的意思是,我做了一个小提琴什么的。
  • 天哪,托尼,我不能accept

标签: javascript jquery


【解决方案1】:

将html代码改为

<input type="button" class="form_button" onclick="checkFunct()" id="movetoset" value="  Move Marked to Set">

并添加javascript

function checkFunct() {
    if(document.getElementById("selectset").value == "General"){
              alert("Please choose a set");
          }
  }

【讨论】:

  • 为什么要在这里写 onsubmit 事件。它不会在这里做任何事情是输入类型是按钮不提交
  • 为什么要less jQuery-y? (而 item 是为了什么?)
  • 为什么在不需要的时候使用 jquery。我喜欢 Jquery,但不要到处使用它。我想我应该删除项目,我不应该......(:删除
  • 因为 OP 已经在使用它,所以它更短,而且实际上有理由更喜欢不显眼的 JavaScript。
  • 即使假设更改整个内容并删除 jQuery 是个好主意,但问题中的代码有什么问题?为什么它不起作用?
【解决方案2】:

你为什么不使用 jQuery 来获取 select 的值呢?

http://jsfiddle.net/davelnewton/CUGva/

【讨论】:

    【解决方案3】:

    您需要确保您发布的 JavaScript 代码是:

    • 在文档就绪(或 onload)处理程序中,和/或
    • 页面源代码中的 HTML 之后

    否则,当您尝试通过其 ID 选择按钮时,按钮元素尚未被解析,因此不会被找到,也不会附加任何点击处理程序。

    试试这个:

    $(function() {
       // other document ready processing (if any) here
    
       $('#movetoset').click(function() {
          if($("#selectset").val() == "General"){
             alert("Please choose a set");
          }
       }
    
       // other document ready processing (if any) here
    });
    

    (注意$(function() {});$(document).ready(function(){}); 的简写)

    只要你在使用 jQuery,为什么不使用它的.val() 函数呢?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 2014-02-21
      • 2018-06-26
      • 1970-01-01
      相关资源
      最近更新 更多