【问题标题】:Javascript onclick in radio button does not work in Chrome单选按钮中的 Javascript onclick 在 Chrome 中不起作用
【发布时间】:2013-03-28 05:58:32
【问题描述】:

我看过这个:Radio Button change event not working in chrome or safari,它没有给我我正在寻找的解决方案。我有一个带有单选按钮和 onClick="jarod();" 的简单表单jarod() 是上面调用的函数。见代码:

<script type="text/javascript">
function jarod()
 {
  alert('yes');
 }
</script>

HTML 表单是:

<form id="form_601799" class="appnitro"  method="post" action="/formbuilder/view.php">
                <div class="form_description">
        <h2>Input Information to Prepare Answer</h2>
        <p></p>
    </div>                      
        <ul >
                <li id="li_1" >
    <label class="description" for="element_1">Number of paragraphs: </label>
    <div>
        <input id="element_1" name="element_1" class="element text small" type="text" maxlength="255" value=""/> 
    </div> 
    </li>       <li id="li_2" >
    <label class="description" for="element_2">Paragraph 1: </label>
    <span>

        <input id="element_2_1" name="element_2" class="element radio" type="radio" value="1" />

    <label class="choice" for="element_2_1" >Admit</label>
        <input onClick="jarod();" id="element_2_2" name="element_2" class="element radio" type="radio" value="2" />
    <label class="choice" for="element_2_2">Qualified Admission</label>
        <input id="element_2_3" name="element_2" class="element radio" type="radio" value="3" />
    <label class="choice" for="element_2_3">Deny</label>
        <input id="element_2_4" name="element_2" class="element radio" type="radio" value="4" />
    <label class="choice" for="element_2_4">Qualified Denial</label>
        <input id="element_2_5" name="element_2" class="element radio" type="radio" value="5" />
    <label class="choice" for="element_2_5">Legal Conclusion</label>
    </span> 
    </li>
                <li class="buttons">
            <input type="hidden" name="form_id" value="601799" />

            <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
    </li>
        </ul>
    </form> 

如您所见,有 onclick="jarod();"试图调用 javascript 函数。当 onclick="jarod();"位于输入标签部分,但如果我将其移动到标签部分,例如:

    <label class="choice" for="element_2_1" onClick="jarod();">Admit</lable>

这个“标签”在 Chrome 中工作得很好。如果选择了合格录取或合格拒绝,我将使用它来显示一个文本区域。

感谢您的帮助。

PS - 我也试过把 onclick="jarod();"在文本字段中,它在 Chrome 中运行良好。单选按钮和 Chrome 有什么关系?

编辑:这令人沮丧。我使用 phpform.org 创建表单以节省时间。它在顶部使用此 DOCTYPE:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

当我使用这个时:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

它工作得很好。有人评论说它是 XHTML / XML 的一种形式,果然如此。至少我能够在最后几个小时里睡觉,而不是坐在电脑前试图找出解决方案!

现在不好的是,我的 CSS 看起来不正确。我想我宁愿遇到格式问题而不是编程问题。

贾罗德

【问题讨论】:

  • 对我来说很好:jsfiddle.net/YabxY
  • 这段代码在 Chrome 中适用于我:
  • 在 chrome 浏览器中也适用于我。

标签: javascript html google-chrome


【解决方案1】:

您的文档是否以任何基于 XML 的 HTML 形式编写?因为如果是这样,那么 onClick 将被忽略,因为名称区分大小写。如果你把你的整个文档都放好,那么有人可以在原始文档的上下文中测试所有内容,并且肯定有人可以给你一个明确的答案(我很快就要睡觉了)。

目前,我的答案是尝试在单选按钮的属性中将 onClick 更改为 onclick。

此外,您需要将 onclick 放在每个单选按钮内,而不仅仅是其中一个。其他单选按钮是单独的 HTML 元素,因此其中一个的 onclick 事件不适用于其他任何一个。

【讨论】:

  • 我只是将它包含在一个中用于测试目的。把它放在所有人身上不应该改变它是否适用于一个人吗?
【解决方案2】:

由于您没有在此处提供您的 DOCTYPE 问题,因此可能是 onclick 或 onClick

你应该检查一下。 onclick or onClick?

也试试

onclick="javascript:jarod();"

从 onclick for radio 开始,它在 chrome for OSX 上工作 这是一个小提琴

http://jsfiddle.net/9efbR/

【讨论】:

  • 是的,这也是我注意到的第一件事。\
  • 有趣。我被打败了一天。明天我会跟进更多信息。
  • 我在上面编辑了关于 DOCTYPE 的问题。我还发现包含的 JS 文件中存在导致问题的内容。我把它拿出来,因为我不需要这个表单上的那个 JS 文件。它包含在所有文件中以保持一致性,但我认为没有理由将其保留,尤其是当它搞砸的时候!
【解决方案3】:

我在无线电输入方面遇到了类似问题(无法让onclick="" 工作),解决方案已将onclick 更改为onchange

【讨论】:

    猜你喜欢
    • 2012-10-03
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    相关资源
    最近更新 更多