ECshop在IE浏览器下js无法获得默认属性

商品属性美化之后

属性都用 type= hidden 形式
就算给了默认值 checked=true
IE进入第一次加载的时候还是无法获得attr的值。
解决:

在goods.dwt 属性加一个默认值 defaultChecked
如:
<!-- {foreach from=$spec.values item=value key=key} -->
              
              <span class="fl junma {if $key eq 0}hover{/if}" name="spec_{$spec_key}" value="{$value.id}"> {$value.label}
                </span>
           <input type="hidden" name="spec_{$spec_key}" value="{$value.id}" {if $key eq 0}checked="true" defaultChecked="true"{/if}>
             <!-- {/foreach} -->

common.js里面

js修改为:

/**
 * 获得选定的商品属性
 */
function getSelectedAttributes(formBuy)
{
  var spec_arr = new Array();
  var j = 0;
 
  for (i = 0; i < formBuy.elements.length; i ++ )
  {
    var prefix = formBuy.elements[i].name.substr(0, 5);
    if (prefix == 'spec_' && (
      ((formBuy.elements[i].type == 'hidden' || formBuy.elements[i].type == 'checkbox') && formBuy.elements[i].checked) ||
      formBuy.elements[i].tagName == 'SELECT' || formBuy.elements[i].getAttribute('defaultChecked')))
    {
        
      spec_arr[j] = formBuy.elements[i].value;
      j++ ;
    }
  }
 
  return spec_arr;
}

时间: 2024-11-04 00:10:07

ECshop在IE浏览器下js无法获得默认属性的相关文章

ecshop jquery冲突,美化商品属性选择 IE中js无法获得默认属性

ecshop 和 jquery 冲突,美化商品属性选择 拷贝一个transport.js  为 transport1.js 在需要用到的页面插入这个新js 隐藏 586行处开始:/* Object.prototype.toJSONString = function () { var a = ['{'], // The array holding the text fragments. b, // A boolean indicating that a comma is required. k,

解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法_javascript技巧

今天检查自己用JQuery+AJAX+PHP做的网站后台登录检测,发现登陆成功后执行页面跳转函数这段JavaScript(JS)代码特效在IE和谷歌浏览器Chrome下都可以很好地执行,兼容性还不错.结果到了火狐(FireFox)浏览器下setTimeout这个JS内置函数不执行了,无效了,也没报错!打开FireBUG指望它能检测出JS的错误,结果没用...Javascript(JS)脚本代码在各浏览器下的兼容是一个很头疼的问题,经过一番调试和搜索,终于解决了setTimeout这个JS代码在火

IE与火狐(firefox)浏览器对js及css的支持差异

IE与火狐(firefox)浏览器对js及css支持的几处不同: 1.firefox不能对innerText支持,也不知道为什么.firefox支持innerHTML但却不支持innerText,所以上网查了一下,原来它改支持textContent来实现innerText,不过实现得没有那么好,默认把多余的空格也保留了.如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替 2.禁止选取网页内容:在IE中一般用js:obj.onselectstart=fu

setTimeout与setInterval在不同浏览器下的差异

setTimeout与setInterval是window对象的两个非常神奇方法,用于实现定时 或延时调用一个函数或一段代码. (新手可能认为setTimeout与setInterval是javascript函数,这是错误的. 新手容易将javascript对象函数与DOM对象方法混淆.) 先来一段代码,大家猜猜在各种浏览器下的结果会是怎么样的呢? function f(){ var s = 'arguments.length:'+arguments.length+'; '; for(var i

ie浏览器使用js导出网页到excel并打印

 简单介绍一种可以使用简单的JS来实现把网页中的信息原样导出到Excel.还可以打印的方法,需要的朋友可以参考下 在一些要求不是很高的小项目中,可以使用一些虽不是通用且不是新技术但是确实可以很好实现功能的技术来实现这些功能.这样系统不是显示的很复杂,且可以方便维护.  新建一个exportPrint.html页面,里面的代码如下所示,就可以实现导出到Excel和打印网页.    代码如下: <html>  <head>   <title>IE浏览器使用JS技术导出到Ex

兼容所有浏览器的js复制插件Zero使用介绍

 这篇文章主要介绍了兼容所有浏览器的js复制插件Zero的使用,需要的朋友可以参考下 这里需要三个插件,分别是:    jquery.js    ZeroClipboard.js    ZeroClipboard.swf    祝你好运!  代码如下: <meta charset="utf-8" />    <button id="d_clip_button" data-clipboard-target="fe_text" &g

IE9.0或者360下js(JavaScript、jQuery)不能正确执行(加载),按F12后执行正常;Firefox下ajax的success返回数据data(json、string)无法获取

兼容问题1: 页面的分享等插件加载不全,并无法点击. 兼容问题2: IE下页面选择器(#id..class.etc.)绑定click事件无法访问到,后台springmvc方法,也无法获取ajax的success方法返回值data. 兼容问题3: 在IE和Google下能够获取,ajax的success返回的数据data,但firefox下获取不到. 兼容问题4: 页面跳转,或url进入,js代码不能正确执行,如果按了F12后(开启F12),JavaScript(加载)事件可以正常响应,一切都正常

javascript-IE下JS报错:传递给系统调用的数据区域太小

问题描述 IE下JS报错:传递给系统调用的数据区域太小 document.location = param: 打断点看是这句报的错,param很长,有600多个字符,是不是这个原因啊? 解决方案 在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样的,当然,不一样的Web服务器能够处理的最大长度的URL的能力也是不一样的. 下面就是对各种浏览器和服务器的最大处理能力做一些说明. Microsoft In

aspx页面Url传参在火狐浏览器下Page_Load执行两次的Bug

问题描述 机器环境:Xpsp3+Vs2010+Firefox28.0问题描述:新建一个空的Website,加入一个a.aspx和b.aspxa.aspx页面代码<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="a.aspx.cs"Inherits="a"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transi