jQuery逻辑运算符未按预期工作

时间:2013-06-26 05:21:41

标签: jquery logical-operators

我有以下代码无效。

var book_id = $('#indexBookSearch');
var tag_id  = $('#indexTagSearch');

if((book_id.val() == "") || (tag_id.val() == ""))
{
    $('#userMessages').html('<div class="alert alert-info">'+
        '<button type="button" class="close" data-dismiss="alert">&times;'+
        '</button>'+
        '<strong>Information ! </strong> Please select search criteria first.'+
    '</div>');
    return false;
}

if((book_id.val() == "") || (tag_id.val() == ""))即使其中任何一个字段中包含value,此行也无效。

BookTag都是select box我已使用console.log()检查了它们的值,并且它完美无缺。

我也改变了

if((book_id.val() == "") || (tag_id.val() == ""))

if(book_id.val() == "" || tag_id.val() == "")

修改

HTML表格

<form id="indexSearchForm" action="books/listTags" method="POST">
    <fieldset>
        <legend>Search Criteria</legend>

        <label>Select Book</label>
        <select class="input-large" name="book_id" id="indexBookSearch">
            <option value="">--Select--</option>
            <option value="109">book 1</option>
        </select>

        <label>Select Tag</label>
        <select class="input-large" name="tag_id" id="indexTagSearch">
            <option value="">--Select--</option>
            <option value="10">adding</option>
            <option value="1">Apples</option>
            <option value="39">article</option>
            <option value="34">bhg</option>
            <option value="40">boon</option>
        </select>       
        <button class="btn btn-primary" type="submit">Submit</button>
    </fieldset>
</form>

jQuery代码

$('#indexSearchForm').submit(function(e)
{
    e.preventDefault();

    var book_id = $('#indexBookSearch');
    var tag_id  = $('#indexTagSearch');

    if( !book_id.val() || !tag_id.val())
    {
        $('#userMessages').html('<div class="alert alert-info">'+
            '<button type="button" class="close" data-dismiss="alert">&times;</button>'+
            '<strong>Information ! </strong> Please select search criteria first.'+
        '</div>');
        return false;
    }
    // more process
});

感谢。

4 个答案:

答案 0 :(得分:1)

你需要在字符串中使用===运算符......

if((book_id.val() === "") || (tag_id.val() === ""))

你也可以这样做......

if((book_id.val().charAt(0))||(tag_id.val().charAt(0)) {

//stuff if true - if either has a value
//Do whatever you want here, submit the form, navigate away, database...etc

} else {

//return error
$('#userMessages').html('<div class="alert alert-info">'+
    '<button type="button" class="close" data-dismiss="alert">&times;'+
    '</button>'+
    '<strong>Information ! </strong> Please select search criteria first.'+
'</div>');
return false;

}

喜欢这个......

答案 1 :(得分:0)

怎么样:

if( !book_id.val().length || !tag_id.val().length )

修改 再看一遍,如果两者都没有填写,请警告他们 - 这是一个声明:

if( !book_id.val().length && !tag_id.val().length )

答案 2 :(得分:0)

使用empty

尝试此操作
if( empty(book_id.val()) || empty(tag_id.val()) )

更好也可以尝试使用.length

if ( (book_id.val().length != 0 ) || (tag_id.val().length != 0 ))

您可以使用trim删除空格可以说修剪

答案 3 :(得分:0)

尝试修剪你的价值,它可能包含价值。工作FIDDLE

if ((book_id.val().trim() === "") || (tag_id.val().trim() === "")) {
    alert('true');
}