由于某些原因,我仅在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中存在,有什么想法吗?
您的错误是这样的:
键入错误: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">
你想同时拥有name
并id
在那里覆盖在不同浏览器的所有基地,其实施的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] 删除。
我来说两句