TypeError:仅在FireFox中未定义的表单元素

塔拉·萨蒙斯(Tara Samons)

由于某些原因,我仅在FireFox中遇到错误:

键入错误:document.forms.myCity.optionname未定义

该脚本可在所有其他浏览器中使用:

function WriteCookie()
{
    document.cookie = "city" + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    cookievalue = document.forms['myCity'].optionname.value + ";";

    document.cookie='city='+cookievalue +'; expires=Fri, 3 Aug 2021 20:47:11 UTC; path=/';
    window.location.href = "http://mywebsite.com";

}

该脚本位于头文件中,并通过以下形式执行:

<form name="myCity" action="http://mywebsite.com/"  method="POST">

<?php

  function get_terms_dropdown($taxonomies, $args){

    $myterms = get_terms($taxonomies, $args);

    $optionname = "optionname";

    $emptyvalue = "";

    $output ="<select name='". $optionname ."'><option selected='". $selected . "' value='" . $emptyvalue . "'>Select a City</option>'";

    foreach($myterms as $term){

      $term_taxonomy=$term->pa_city; //CHANGE ME

      $term_slug=$term->slug;

      $term_name =$term->name;

      $link = $term_slug;

      $output .="<option name='".$link."' value='".$link."'>".$term_name."</option>";

    }

    $output .="</select>";

    return $output;

  }

  $taxonomies = array('pa_city'); 

  $args = array('order'=>'ASC','hide_empty'=>true);

  echo get_terms_dropdown($taxonomies, $args);

?>

<input type="submit" value="click" name="submit" onclick="WriteCookie()">

</form> 

该错误仅在FireFox中存在,有什么想法吗?

贾科莫1968

您的错误是这样的:

键入错误:document.forms.myCity.optionname未定义

我认为问题在于以下要素:

<form name="myCity" action="http://mywebsite.com/"  method="POST">

看起来表单使用id选择器而不是name选择器。我之前曾遇到过这个问题,并且通过将id都放置name<form>元素中来解决了这个问题我可以在MSN XHTML Standards页面上找到关于此的唯一明确的在线参考

XHTML 1.1准则中不允许form元素上的name属性。

我还在XHML 1.1严格的标准和表单上找到了一个讨论线程,该线程也引用了它:

W3表示,不推荐使用name属性,而不推荐使用HTML 4.0,并且仅ID标记适合新的XHTML 1.1标准。

然后我找到了这个W3官方参考文献,把这个问题牢记在心了。重点是我的:

name = cdata [CI]此属性命名元素,以便可以从样式表或脚本中引用它。笔记。包含此属性是为了向后兼容。应用程序应使用id属性来标识元素。

因此,只需id向该元素添加一个属性,如下所示:

<form name="myCity" id="myCity" action="http://mywebsite.com/"  method="POST">

你想同时拥有nameid在那里覆盖在不同浏览器的所有基地,其实施的XHTML 1.1标准。

但是,如果仍然无法解决问题,那么只需在id更改顶部的JavaScript中执行此操作即可

function WriteCookie()
{
    document.cookie = "city" + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    cookievalue = document.getElementById("myCity").optionname.value + ";";

    document.cookie='city='+cookievalue +'; expires=Fri, 3 Aug 2021 20:47:11 UTC; path=/';
    window.location.href = "http://mywebsite.com";

}

我更改了这样的行:

cookievalue = document.forms['myCity'].optionname.value + ";";

要这样:

cookievalue = document.getElementById("myCity").optionname.value + ";";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TypeError:仅在FireFox中未定义的表单元素

来自分类Dev

php - html 表单 $_POST 仅在表单的一个元素上未定义索引?

来自分类Dev

Firefox插件:TypeError:getBrowserForTab(...)未定义

来自分类Dev

仅在IE中未定义“ jQuery”

来自分类Dev

仅在IE中未定义“ jQuery”

来自分类Dev

无法读取未定义的属性“ 0”(仅在单元测试中)

来自分类Dev

来自服务器的AJAX响应未定义-仅在Firefox中

来自分类Dev

表单元格输入返回未定义

来自分类Dev

在Firefox中未定义的功能

来自分类Dev

ReferenceError:在Firefox中未定义函数

来自分类Dev

Firefox中未定义VEmap

来自分类Dev

ColdFusion中的HTML表单错误:“元素__在FORM中未定义。”

来自分类Dev

TypeError:$ scope在Jasmine的Angular控制器单元测试中未定义

来自分类Dev

TypeError:jquery中未定义$

来自分类Dev

TypeError:newHandlerInfo在emberjs中未定义

来自分类Dev

CakePHP 2.5。创建一个隐藏的表单元素,错误消息:未定义的偏移量

来自分类Dev

TypeError:Firefox.22.0中未定义this.element导致我的网站关闭

来自分类Dev

从数组中删除未定义的元素

来自分类Dev

结构数组中的未定义元素

来自分类Dev

从数组中删除未定义的元素

来自分类Dev

如何在Firefox中的未定义大小的flexbox元素上强制溢出?

来自分类Dev

navigator.mediaDevices仅在AngularJs Contraller中未定义

来自分类Dev

表单输入未定义

来自分类Dev

在表单提交事件对象上给出错误:“ TypeError:无法从未定义中读取属性” 0“。

来自分类Dev

登录表单中的未定义索引错误

来自分类Dev

Web表单内容页面底部的脚本中未定义“ $”

来自分类Dev

无法读取表单中未定义错误的属性“值”

来自分类Dev

无法读取表单中未定义的属性“道具”

来自分类Dev

$ scope。$ on在单元测试中未定义

Related 相关文章

  1. 1

    TypeError:仅在FireFox中未定义的表单元素

  2. 2

    php - html 表单 $_POST 仅在表单的一个元素上未定义索引?

  3. 3

    Firefox插件:TypeError:getBrowserForTab(...)未定义

  4. 4

    仅在IE中未定义“ jQuery”

  5. 5

    仅在IE中未定义“ jQuery”

  6. 6

    无法读取未定义的属性“ 0”(仅在单元测试中)

  7. 7

    来自服务器的AJAX响应未定义-仅在Firefox中

  8. 8

    表单元格输入返回未定义

  9. 9

    在Firefox中未定义的功能

  10. 10

    ReferenceError:在Firefox中未定义函数

  11. 11

    Firefox中未定义VEmap

  12. 12

    ColdFusion中的HTML表单错误:“元素__在FORM中未定义。”

  13. 13

    TypeError:$ scope在Jasmine的Angular控制器单元测试中未定义

  14. 14

    TypeError:jquery中未定义$

  15. 15

    TypeError:newHandlerInfo在emberjs中未定义

  16. 16

    CakePHP 2.5。创建一个隐藏的表单元素,错误消息:未定义的偏移量

  17. 17

    TypeError:Firefox.22.0中未定义this.element导致我的网站关闭

  18. 18

    从数组中删除未定义的元素

  19. 19

    结构数组中的未定义元素

  20. 20

    从数组中删除未定义的元素

  21. 21

    如何在Firefox中的未定义大小的flexbox元素上强制溢出?

  22. 22

    navigator.mediaDevices仅在AngularJs Contraller中未定义

  23. 23

    表单输入未定义

  24. 24

    在表单提交事件对象上给出错误:“ TypeError:无法从未定义中读取属性” 0“。

  25. 25

    登录表单中的未定义索引错误

  26. 26

    Web表单内容页面底部的脚本中未定义“ $”

  27. 27

    无法读取表单中未定义错误的属性“值”

  28. 28

    无法读取表单中未定义的属性“道具”

  29. 29

    $ scope。$ on在单元测试中未定义

热门标签

归档