2016-09-07 17 views
1

HTML属性がブール値であるかどうかを確認する方法はありますか?例えば:属性がブール値属性であるかどうかをチェックする方法?

<input type="text" name="input" disabled=""/> 

ここdisabled属性がブールで、私はいくつかのコードを持っていると私は、その属性がブール値であるか否かの値を設定する前にチェックする必要があります。

なぜこれが必要ですか?

前述のように""または有効値としてtrueまたはfalseでないプロパティ名自体を指定できます。この問題を解決するために

+0

私はあなたにこれをしたいのですか? – byxor

+0

すべての属性が標準として定義されています。データタグは 'is data-tag === "true"'でチェックすることができます... –

+1

@Nunienは今削除された答えであなたに正しく言ったので、あなたの要素のプロパティに相当するものをチェックすることができます。 'typeof yourInput.disabled === 'ブール値' – Kaiido

答えて

2

HTMLのレベルは基本的に区別されません。属性が単なる値のない名前である場合(例: <input disabled>、それはブール値の属性であるという確信です。しかし、それがname="value"表記を使用している場合、それを区別する方法はありません。 class="class"はブール値属性ですか?いいえ、それはclassListの1つのエントリ"class"です。 foo=""はどうですか?空値表記を選択するブール値属性、または値を設定していない属性です。

インタープリタだけが属性にブール値を割り当てます。あなたがHTML要素を使用すると、インタプリタがないと同じことを行う必要があり、ブール値を何であるかを知りたい場合は

domElement.disabled = htmlElement.hasAttribute('disabled'); 

::DOMにHTMLを解析しながら、すなわち、インタプリタはDOMは大まかに言えば、このように属性を設定しておきますその属性に型があり、その仕様に従ってHTMLを解釈するDOM要素のリスト。

0

、あなたは次のようにtypeofオペランドを持っています。ここでは

var check_input = document.getElementById("check-input"); 

if(typeof(check_input.disabled) === "boolean"){ 
    alert('Yes'); 
} 

は、完全なコードでJSfiddleです。私の答えがあなたを助けてくれることを願っています!

関連する問題