2012-01-19 13 views
0

フォームバリデーターで助けが必要です。それはテキストとそのようなすべてのようなすべてを検証しますが、順序付けられていないリストに少なくとも1要素/項目があるかどうかを検証する必要があります。フォーム検証 - 順序付けられていないリスト

私の最初のアイデアは、順序付けられていないリストのchildNodesを数えることでしたが、.childNodes.lengthを使っても機能しませんでした。なぜ私はj​​QueryがJavaScript関数に混在しているのでしょうか?ここで

は、テキスト文字列の検証機能の例です。ここで

function checkLength(o, n, min, max) { 
    if (o.val().length > max || o.val().length < min) { 
     o.addClass("ui-state-error"); 
    updateTips("Length of " + n + " must be between " + 
     min + " and " + max + "."); 
    return false; 
    } else { 
    return true; 
     } 
} 

は私の順序付けられていないフォームの検証機能は、(動作しない)だったものです。

function checkTags(t) { 
if (t.childNodes.length < 1) { 
    t.addClass("ui-state-error"); 
    updateTips("Add at least 1 genre/subgenre."); 
    return false; 
} 
else { 
     return true; 
} 
} 

順不同リスト選択リストから値を選択し、JavaScriptのリンクをクリックした後、ユーザーによって入力されます。助けをあらかじめありがとう!

答えて

0

tはjQueryオブジェクトであると仮定すると、

if (!t.children().length) { 
    t.addClass('ui-state-error'); 
} 

を試みるが、ここにあなたの参照のためのリンクです:http://api.jquery.com/children/

0

トンが要素である場合には、t.childNodesは、すべての子ノードを含み、テキストノード、要素ノードを含む

<div> 
    <p></p> 
</div> 

他人だけで、3つのノードを持っている:多くのブラウザでは、一部のブラウザでは、folloing divのはので、マークアップの中で空白を表現するDOMに空のテキストノードを挿入します。子要素ノードを確認するには、

if (element.getElementsByTagName('*').length) // element has child element nodes 
関連する問題