-2

私は Y.one(selector).getAttribute('value'); を使用しています。ページで値を返すのに、value="" の場合の処理​​に問題があります。

var check_value = Y.one(selector).getAttribute('value');
if (check_value != undefined || check_value != null || check_value != "") {
    alert(check_value);
}

これらのすべてのチェックで、私が見ている要素の値が "" の場合、空のアラート ボックスが表示されます。この場合、探している値が数値であることはわかっているので、0 より大きい数値を探すようにチェックを変更して機能させることができますが、私は数値データを扱っていませんでした。

if (check_value >0) {
    alert(check_value);
}

私の場合、この方法は機能します。

4

5 に答える 5

4

代わりに「真実」をチェックしてみませんか?

if (check_value) {
   alert(check_value);
}

それは基本的にあなたの(意図された)チェックと同じだと思います。0また、 (数値)を確認する必要がある場合は、次を使用してください。

if (check_value || check_value === 0) {
   ...
}
于 2012-09-26T12:59:46.193 に答える
2

空の文字列の場合、未定義ではなく、null ではありません。undefined でない、nullでない、空の文字列でないかをチェックするので、合格します。

使用し&&ない||

于 2012-09-26T12:57:08.880 に答える
1

Y.Lang.isValue()を見るかもしれません

http://yuilibrary.com/yui/docs/api/classes/Lang.html#method_isValue

于 2012-09-26T15:52:53.163 に答える
0

check_value != undefined || check_value != null || check_value != ""の場合はプレーンな英語でロジックを見てください。undefined or null or ""null の場合は未定義ではなく、空白の場合は null ではないため、すべてが通過します。ANDあなたは代わりに論理を探していますOR

これを試して:

var check_value = Y.one(selector).getAttribute('value');
if (check_value != undefined && check_value != null && check_value != "") {
    alert(check_value);
}
于 2012-09-26T12:57:21.037 に答える
0

ifステートメントにOR( ||) 句があるため、アラートが表示されます。value属性が空の文字列の場合、最後の条件 ( )check_value != ""は失敗するはずです。ただし、""is not equal toundefined最初の条件はすでに true を返しているため、ifステートメントのテストはパスし (他の条件は評価する必要がないため評価されません)、ifブロックが実行されます。

代わりにAND( )を実際に使用したかったのではないかと思います。&&

于 2012-09-26T12:58:12.167 に答える