使用jQuery或JavaScript检查输入/类型文本为空/ null

时间:2015-07-06 19:48:23

标签: javascript jquery validation input

我很难过。我试图在我的JavaScript中检查我的输入类型:text是否为空或null。我目前有这个:

        if ($("#startDate").val().trim().length() === 0)
    {
        alert("Please fill out the required fields.");
    }

我尝试过:.val() === "".val() == "".length() === 0.length() == 0.length() < 1.val().length() === 0val().trim().length() < 1,{ {1}},.trim().length() < 1.text() === "".text() == ""

我的HTML是:

!$("#startDate").val()

我也试过这个:

<fieldset>
<label for="startDate_[pk]" style="display:block; width:100%;text-align:left">Start Time</label>
<input type="text" name="startDate_[pk]" id="startDate_[pk]" style="width:75px;display:inline" placeholder="pick date" />
@@
<select name="startTime_[pk]" id="startTime_[pk]" style="display:inline;" disabled="disabled">
@{
var time = DateTime.Now.Date.AddHours(8);
for (int i = 480; i < 1260; i += 15)
{
<option value="@i">@DateTime.Now.Date.AddMinutes(i).ToShortTimeString()</option>
}
}
</select>
</fieldset>

我的想法已经不多了。

**** ****更新

验证适用于一个选定的对象。但是当您选择多个时,验证仅适用于第一个对象。这是我的代码:

        $('input[class^="dateValidate"]').each(function () {
        if($(this).val().trim().length === 0)
        {
            alert("Please fill out the required fields.");
        }

我试过了:

    function validate()
{
    var startDate = $('[id^="startDate"]').filter(function(){
        return $(this).val().length!==0;
    });
    var showingType = $('[id^="tShowingType"]').filter(function () {
        return $(this).val() === "";
    });
    var startTime = $('[id^="startTime"]').filter(function () {
        return $(this).val() === "";
    });
    var endTime = $('[id^="endTime"]').filter(function () {
        return $(this).val() === "";
    });

    if (startDate.length == 0 || showingType.val() === "" || startTime.val() === "" || endTime.val() === "")
    {
        alert("Please fill out the required fields.");
    }
    else
    {
        UI.goToConfirmStep();
    }

4 个答案:

答案 0 :(得分:1)

您的选择器中似乎有错误的id_ startDate。在您的代码中,您拥有startDate_[pk]等ID。所以你需要一个starts with选择器,如下所示。

 var emptyInputs= $('[id^="startDate"]').filter(function(){
     return $(this).val().length===0;
 });

if(emptyInputs.length>0){
   alert("Please fill out the required fields.");
}

<强> Fiddle Demo

答案 1 :(得分:0)

您没有正确定位ID

if(!$("#startTime_[pk]").val())

&#13;
&#13;
if (!$('#startTime_[pk]').val()) {
  console.log('input empty');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<input id="startTime_[pk]" type="text" value="" />
&#13;
&#13;
&#13;

<强>更新

  

[pk]实际上发生了变化,因为它是一个加载到页面加载的guid

然后使用starts with选择器

if(!$('[id^="startTime"]').val())

答案 2 :(得分:0)

length不是一个功能。以下是通过删除length

之后的括号来完成上述代码的示例

&#13;
&#13;
 function validate() {
   if ($("#tShowingType").val() === "" || ($("#startDate").val().trim().length === 0) || ($("#startTime").val() === "") || ($("#endTime").val() === "")) { 
     alert("Please fill out the required fields."); } else { UI.goToConfirmStep();
    }
 }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type='text' id='startDate' />
<button onclick='validate();' >Button</button>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

将条件更改为以下内容:

if(!$('[id^="startDate"]').val()){
        alert("Please fill out the required fields.");
    }