HTML -Як зрабіць памылку праверкі для нулявога значэння ўводу тэкставага поля ў JavaScript?

Я хачу зрабіць некаторыя праверкі памылак у сцэнары для ўводу тэкставых, г.зн. калі няма ўваходнага сігналу, паказваючы папярэджанне. Я спрабаваў выкарыстаць значэнне = "" значэнне = "», але, здаецца, усё не можа працаваць.

поле

 <div class="поле">
        
        


 </div>

кнопка Захаваць

<input type="submit" value="Save" onclick="verify()"/>

функцыя

<script>    
    функцыя verify(){
    if (document.forms[0].elements['id_remarks'].value=='') {
        alert('Please enter the remarks')
    }
</script>

Можа хто-небудзь дапамагчы ў тым, як гэта зрабіць? вялікі дзякуй

1
Значэнне элемента формы заўсёды з'яўляецца радком, яна ніколі не нулявым або не вызначана .
дададзена аўтар RobG, крыніца
Выкарыстоўвайце адладчык JS. Што фактычнае значэнне document.forms [0] .elements [ 'id_remarks']. Значэнне ? Усталюйце кантрольную кропку ў верыфікаваць() - гэта функцыя датэлефанаваліся?
дададзена аўтар millimoose, крыніца
Ва ўсякім разе, не здаецца, няма нічога дрэннага ў кодзе вы паказалі нам ( codepen.io/ millimoose/ручка/Avxwl ), таму я мяркую, што праблему ў іншым месцы.
дададзена аўтар millimoose, крыніца
дададзена аўтар RGV, крыніца

8 адказы

паспрабаваць

function verify(){
    if(!document.getElementById('id_remarks').value.trim().length){
        alert("Please enter the remarks");
    }
 }

Updated: Fixed for IE version < 9

У IE ніжэй за 9 версіі, ён не падтрымлівае .trim ()

if(typeof String.prototype.trim !== 'function'){
    String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g, ''); 
    }
}
3
дададзена
Я абнавіў новы спосаб выправіць з IE <9
дададзена аўтар Mr Jerry, крыніца
<�Код> .trim() пацерпіць няўдачу ў IE8 і ніжэй
дададзена аўтар Sushanth --, крыніца
var x=document.forms[0].elements['id_remarks'].value;

if(!x){} else {}

This checks for (""), null, undefined, false and the numbers 0 and NaN

крыніца:

Як праверыць нулявыя значэнні ў JavaScript?

3
дададзена
Але OP трэба толькі праверыць «», значэнне элемента формы ніколі не будзе нічога, акрамя радка.
дададзена аўтар RobG, крыніца

Гэта працуе для мяне

Demo

if (!document.getElementById('id_remarks').value.trim()) {
        alert('Please enter the remarks');
    }

trim() validates blank spaces.

1
дададзена
так, гэта працуе выдатна
дададзена аўтар Mona, крыніца

Валідацыю часцей ужываецца прадставіць апрацоўшчык Формаў, так як форма можа быць прадстаўлена без націску на кнопку адпраўкі.

Параўноўваючы значэнне кантролю з «» (пустым радком) павінен працаваць, аднак значэнне можа быць прабелам, таму вы можаце выдаліць, што першым, напрыклад,

<form onsubmit= "return verify(this);" ...>
  


  <input type="submit">
</form>

<script>
function verify(form) {
  if (form.remarks.value.replace(/\s+/g,'') == '') {
    alert('Please enter some remarks');
    return false;
  }
}
</script>
1
дададзена
Калі вы ведаеце, што ў асяроддзі ES5. ;-)
дададзена аўтар RobG, крыніца
Вы можаце проста выкарыстоўваць form.remarks.value.trim()
дададзена аўтар millimoose, крыніца

Параўноўваючы .value у аб'ект пустой радкі выдатна працуе (гл гэта jsFiddle ).

Толькі думаю, што я магу бачыць, што гэта дзіўнае ваш код з'яўляецца выкарыстанне .elements ўласцівасць аб'екта формы. Я не магу сказаць, што гэта гэта не так, проста, што гэта не так, як я прывык бачыць гэта. Я прывык да ідэнтыфікацыі DOM аб'ектаў з дапамогай document.getElementById() .

У любым выпадку, наступныя працы ...

HTML:

<form id="f1" action="" method="post">
    
    
<input id="result" type="text">

<input type="submit" value="verify"> </form>

JavaScript:

var ta1 = document.getElementById("ta1");
var result = document.getElementById("result");
f1.onsubmit = function() {
    if (ta1.value === "") {
        result.style.color = "red";
        result.value = "Blank";
    } else {
        result.style.color = "blue";
        result.value = "Not Blank: '" + ta1.value + "'";
    }
    return false;
};
1
дададзена

Try to check for the length property

if (!document.forms[0].elements['id_remarks'].value.length) {
0
дададзена
Радок нулявы даўжыні роўная пусты радок, гэта значыць, калі <�я> а з'яўляецца радок і a.length == 0 затым а === «» .
дададзена аўтар RobG, крыніца
вы павінны праверыць, ці не document.forms [0] [ '.elements id_remarks']. value.length
дададзена аўтар Mehdi Yeganeh, крыніца

Fiddle working http://JSfiddle.net/Q4JPs/8/

HTML

<div class="field">
        
        


 </div>
<button id='btn'>Click me</button> 

JS

document.getElementById('btn').onclick = function (){
    if (document.getElementById('id_remarks').value =="")
    {
        alert("is Empty");
        return;
    }


 }
0
дададзена

Вы можаце выкарыстоўваць неабходны атрыбут ў HTML5, ён працуе на ўсіх сучасных браўзэрах, нават калі карыстальнікі адключылі JavaScript. прыклад:

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

<form action="" method="post">
    <input name="username" value="" title="username" required>
    <input type="submit">
</form>
</div> </div>
0
дададзена