Memeriksa Input/Jenis Teks kosong/null dengan jQuery atau JavaScript

saya bingung. Saya mencoba memeriksa apakah tipe input saya: teks kosong, atau nol, di JavaScript saya. Saat ini saya memiliki ini:

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

Saya sudah mencoba: .val() === "", .val() == "", .length() === 0, .length() == 0, .length() < 1, .val().length() === 0, val().trim().length() < 1, .trim().length() < 1, .text() === "", .text() == "", !$("#startDate").val()

HTML saya adalah:

<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>

Saya juga sudah mencoba ini:

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

Saya kehabisan ide.

****Memperbarui****

Validasi berfungsi untuk satu objek yang dipilih. Namun bila Anda memilih lebih dari satu, validasi hanya berfungsi untuk objek pertama. Ini kode saya:

    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();
    }

Saya telah mencoba:

var startDate = $('[id^="startDate"]').filter(function(){
        return $(this).val().length!==0
var startDate = $('[id^="startDate"]').filter(function(){
        return $(this).val().length===0
startDate.length == 0
startDate.length < 0
startDate.length < 1

person Kevin Fischer    schedule 06.07.2015    source sumber
comment
Bisakah Anda memposting HTML juga?   -  person Amit.rk3    schedule 06.07.2015
comment
Apa masalahnya dengan yang sudah Anda coba? Apakah mereka tidak bekerja?   -  person Matt Zeunert    schedule 06.07.2015
comment
mereka tidak memberikan peringatan. itu hanya gagal tanpa kesalahan.   -  person Kevin Fischer    schedule 06.07.2015
comment
coba ini if($("#startDate").val().trim()) kondisi ini akan menangani string palsu (null atau tidak terdefinisi atau kosong)   -  person Sudhansu Choudhary    schedule 06.07.2015
comment
Satu hal: $("#startDate").val().trim().length === 0, panjang bukanlah fungsi, melainkan properti. Tapi saya rasa ini salah ketik karena Anda mengatakan tidak ada kesalahan.   -  person dfsq    schedule 06.07.2015
comment
Pemilih $("#startDate") tidak akan memilih elemen dalam HTML Anda yang memiliki id dari: startDate_[pk]; Anda memerlukan $('#startDate_[pk]'), atau cukup $('input[id^=startDate]').   -  person David says reinstate Monica    schedule 06.07.2015
comment
itu berfungsi pada semua masukan saya yang lain, yang ini kebetulan merupakan pemilih tanggal   -  person Kevin Fischer    schedule 06.07.2015
comment
[pk] dimuat saat dimuat, itu adalah panduan yang dibagikan   -  person Kevin Fischer    schedule 06.07.2015
comment
@KevinFischer memperbarui jawaban saya, coba sekali!   -  person Sudhansu Choudhary    schedule 06.07.2015
comment
sayangnya, @SudhansuChoudhary, itu tidak berhasil   -  person Kevin Fischer    schedule 06.07.2015


Jawaban (4)


Tampaknya Anda salah memetakan id- startDate di pemilih. Dalam kode Anda, Anda memiliki ID seperti startDate_[pk]. Jadi, Anda memerlukan pemilih dimulai dengan seperti di bawah ini.

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

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

Demo Biola

person Amit.rk3    schedule 06.07.2015
comment
itu mengenai tiga kali karena ada tiga tag dengan tanggal mulai sebagai bagian dari namanya - person Kevin Fischer; 06.07.2015
comment
dan saya tidak dapat mengubah nama saat ini, tanpa mengubah banyak kode lainnya. saya rasa saya bisa mencoba kelas dan mencarinya. - person Kevin Fischer; 06.07.2015
comment
oke, sekarang ini tidak berfungsi dengan beberapa kolom input dengan panduan berbeda yang terpasang. Contoh: Saya memilih satu dan validasinya berhasil. tetapi ketika saya memilih lebih dari satu, validasi hanya berfungsi untuk yang pertama dan tidak sisanya - person Kevin Fischer; 06.07.2015
comment
@KevinFischer : diperbarui lagi. Tidak mengetahui persyaratan ini :) - person Amit.rk3; 06.07.2015
comment
sejujurnya, saya tidak berpikir itu akan banyak berubah! mengujinya sekarang. Saya sebenarnya menyesuaikannya menjadi blankInputs.length ‹ 0 dalam kode pengujian saya. saya telah memperbarui pertanyaan saya di bagian atas untuk informasi lebih lanjut - person Kevin Fischer; 06.07.2015
comment
Saya telah memperbarui pertanyaan dengan salah satu hal yang telah saya coba. Itu masih memvalidasi objek pertama dengan sempurna (YAY!), tapi sayangnya, itu tidak memvalidasi objek berikut. - person Kevin Fischer; 07.07.2015

Anda tidak menargetkan id dengan benar

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

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

Perbarui

[pk] sebenarnya berubah karena ini adalah panduan yang dimuat saat halaman dimuat

Kemudian gunakan pemilih dimulai dengan

if(!$('[id^="startTime"]').val())
person AmmarCSE    schedule 06.07.2015
comment
Saya juga mencobanya. Lupa menambahkan itu. Akan ditambahkan sekarang - person Kevin Fischer; 06.07.2015
comment
@KevinFischer, artinya ada hal lain yang terjadi di kode Anda. Jika Anda melihat cuplikan di jawaban saya, itu berfungsi - person AmmarCSE; 06.07.2015
comment
@KevinFischer, lihat jawaban saya yang diperbarui, Anda tidak menargetkan id dengan benar untuk html yang diberikan - person AmmarCSE; 06.07.2015
comment
[pk] sebenarnya berubah karena ini adalah panduan yang dimuat saat halaman dimuat - person Kevin Fischer; 06.07.2015
comment
itu tidak memberikan peringatan ketika tidak ada apa pun di kotak input - person Kevin Fischer; 06.07.2015

length bukan fungsi. Berikut adalah contoh kode di atas yang berfungsi dengan menghilangkan tanda kurung setelah length

 function validate() {
   if ($("#tShowingType").val() === "" || ($("#startDate").val().trim().length === 0) || ($("#startTime").val() === "") || ($("#endTime").val() === "")) { 
     alert("Please fill out the required fields."); } else { UI.goToConfirmStep();
    }
 }
<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>

person depperm    schedule 06.07.2015
comment
itu tidak mencapai peringatan dan tidak mengenai yang lain - person Kevin Fischer; 06.07.2015
comment
@KevinFischer apa sisa jquery Anda - person depperm; 06.07.2015
comment
` fungsi validasi() { //if ($(#tShowingType).val() === || ($(#tanggal mulai).val().panjang === 0) || ($(#waktumulai). val() === ) || ($(#endTime).val() === )) if (!$('[id^=startTime]').val())// || ($(#waktumulai).val() === ) || ($(#endTime).val() === )) { alert(Silakan isi kolom yang wajib diisi.); } else { UI.goToConfirmStep(); } } ` itu fungsi yang sederhana. hasil akhirnya akan menggabungkan kolom input lainnya untuk membuat satu pernyataan if untuk divalidasi - person Kevin Fischer; 06.07.2015
comment
kapan validasi dipanggil? - person depperm; 06.07.2015
comment
harus ada spasi setelah tombol dan sebelum onclick - person depperm; 06.07.2015
comment
ada. saya membuat tipe-o di sini dan memperbaikinya - person Kevin Fischer; 06.07.2015

Ubah kondisinya menjadi berikut:

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