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 is null or not an object というメッセージが表示されます。

誰かがこれで私を助けてくれませんか。これが解決されれば、このフレームワークは検証のあらゆる困難を回避するのに非常に役立ちます。

前もって感謝します..

4

0 に答える 0