2016-07-18 29 views
1

我在驗證來自用戶的輸入jquery。如果輸入爲空,則返回false,並且jquery代碼不會運行,並且如果它包含一些文本,jquery代碼將運行。 這裏是一個例子 -無法在jquery中正確驗證

function sendm() { 
    var valid; 
    valid = sendmval(); 
    if (valid) { 
     //jquery code 
    } 
} 

function sendmval() { 
    var valid = true; 
    if (!$('#message').val()) { 
     valid = false; 
    } else {} 
    return valid; 
} 

這工作正常。但是,僅當用戶輸入blank spaces時纔會出現問題,因此即使在空白輸入時也會導致運行jquery代碼。我怎樣才能防止這一點?

+3

['$ .trim() '](HTTPS://api.jquery。 com/jquery.trim /) – Andreas

+0

$ .trim()。使用它 –

+0

因爲空格是一個值:js中的'!「」'評價爲'false',因爲空格是真的。 –

回答

4

由於spaces計數爲字符,所以你必須使用jQuery的$.trim()象下面這樣: -

if (!$.trim($('#message').val())) { 
     valid = false; 
} 

更多參考: -

https://api.jquery.com/jQuery.trim/

+0

同意這是最好的回答 –

+0

有沒有更喜歡修剪什麼? –

+0

@TomCruise我不哭。我問你爲什麼這樣做?如果你給了我一個解釋,你可以高興地標出任何一個,即使現在我也沒有問題。標記任何你想要的。這是你的問題BTY –

3

由於空間也一個字符,簡單使用.trim() JavaScript字符串的功能,以刪除t中的空格他開始和結束。然後照常進行檢查。

注:我已經改變了:

if (!$('#message').val()) 

if (!$('#message').val().trim()) 

查看完整的工作代碼測試:

function sendm() { 
 
    var valid; 
 
    valid = sendmval(); 
 
    if (valid) { 
 
    alert("valid & sendm"); 
 
    } 
 
} 
 

 
function sendmval() { 
 
    var valid = true; 
 
    if (!$('#message').val().trim()) { 
 
    valid = false; 
 
    } else {} 
 
    return valid; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="message"> 
 
<button onclick="sendm()">CHECK</button>