if语句保持返回true

时间:2018-03-03 19:19:00

标签: javascript jquery

我在Javascript中的代码:

function saveChanges() {
var formData = {
    ProjectId: $('#rz-project').val(),
    ArticleId: $('#rz-article').val()
};

if (formData.ProjectId != null && formData.ArticleId != null)
{
    $.ajax({
        url: baseUrl + 'Time/EditReport',
        type: "post",
        data: { timeReport: formData },
        success: function (result) {
            success("Changed");
        },
        error: function (err) {
            alert(err.statusText);
        }
    })
}
else {   }

还尝试了!==,但它是一样的。

当我调试时,我可以看到值为null,但它执行if语句,因为它是真的。

我一直在谷歌搜索,但有人使用if($()),但我不这样,我没有看到问题?尝试我的验证,但因为表格没有发布,我无法让它工作(有2个按钮,但它同样对待所以我不得不从发布更改为只有带有id的“html.beginform”)

2 个答案:

答案 0 :(得分:2)

使用

if (formData.ProjectId != "" && formData.ArticleId != "")

答案 1 :(得分:2)

没有元素具有null值。 null表示没有值,而在<input>元素中,value始终存在。
因此,您不必检查值是否存在,但如果该值不为空,则为@ sifanovi059建议。 考虑到JavaScript可以隐式地将String强制转换为Boolean,如果字符串(true)存在(str),则为str != null && str != undefined,如果字符串为空(str.length > 0),所以你可以试试这个:

if (formData.ProjectId && formData.ArticleId)