1

我在我的项目中使用了 validatious-custom-0.9.1.js 框架,我正在尝试验证单选按钮的必填字段。但它没有验证 IE8 中的单选按钮。我在控制台中收到以下错误

Message: 'tagName' is null or not an object
Line: 7
Char: 9921
Code: 0
URI: http://validatious.org/design/js/validatious.0.9.1.min.js?1256063644

使用的 HTML 代码。

<div>
<label for="_button_880">Radio List
<div>
<p>some text</p>
</div>
</label>
<div>
  <ul>
    <li>
      <div>
      <div>
        <input type="radio" name="radio1" id="radio1" value="Radio1" class="required" title="Required."/>
        <label for="radio1">Radio1</label>
    </div>
</div>
</div>
</div>

失败的 JS - 前 2 个是框架文件中给出的示例。所以你会知道它是如何实现的

/* 单选按钮字段被假定为一个列表 - 有序或无序 - 前面有一些元素作为标签。这可以是任何元素。如果它不在列表中(即元素没有“li”父元素),则假定标签是第一个输入元素之前的元素。

示例1(列表方法):

<h2>Favourite food:</h2>   
<ul>  
<li>  
<input type="radio" name="food" value="hamburger" id="food_hamburger" />  
<label for="food_hamburger">Haburger</label>  
</li>  
<li>  
<input type="radio" name="food" value="pizza" id="food_pizza" />  
 <label for="food_pizza">Pizza</label>  
</li>  
</ul>

getLabel() 在这种情况下将返回 h2 元素。

示例 2(无列表)。

   <label class="groupLabel">Favourite food:</label>  
   <input type="radio" name="food" value="hamburger" id="food_hamburger" />  
   <label for="food_hamburger">Hamburger</label>  
   <input type="radio" name="food" value="pizza" id="food_pizza" />  
   <label for="food_pizza">Pizza</label>

getLabel() 在这种情况下将返回第一个标签元素
*/

实际代码

  getLabel: function() {
   var parent = this.__elements[0].parentNode;
  //alert(parent1.nodeName); --- Gives 'nodeName' is null or not an object IN Ie8
   if (parent1.tagName.toLowerCase() === 'li') { ---Gives 'tagName' is null or not an object
  return v2.$(parent1.parentNode).previous();
  }

  var element = v2.$(this.__elements[0]).previous();
  return element || this.base();
 }

js文件中的必填字段验证

v.reg('required', function(field, value, params) {
return !v2.empty(value) && !(typeof value.length !== 'undefined' && value.length == 0);
  }, null, null, 'not-empty', false);

它在 Firefox、IE7 和 IE9 中运行良好。但在 Ie8 中,我收到消息 tagName 为 null 或不是对象。

有人可以帮助我吗?如果解决了这个问题,那么这个框架将非常有用,可以避免验证过程中的所有困难。

提前致谢..

4

0 回答 0