2012-04-25 3 views
0

名前のテキストフィールドが空であるかどうかを確認しようとしています。そうであれば、「あなたの名前を入力してください」と表示されているdivを表示したい。私はテストを行い、名前= '名前'です。それ以降は他に何もポップアップしない。JavaScriptがelse文のエラー

function validate(input, name) { 
if(name=='name') { 
     if(input==null || input=="") { 
      name.style.visibility='visible'; 
      alert("please enter a value"); 
     } else { 
      alert("valid entry."); 
     } 
    } 
} 

アラートボックスで入力をプリントアウトすると、何も表示されません。だから私はそれがヌルか ""どちらかであることを知っています。どのように私はこれが動作するようにこれを修正するのですか?

<input type="text" name="name" id="name" onblur="javascript: validate(this.value, this.id);" required /> 
    <div id="name" style="visibility:hidden; float:right;">Please fill in a name!</div> 
+4

name == '名前'は後でオブジェクトとして参照されるとき意味がありません。 – h0tw1r3

+3

HTMLを表示し、変数 'name'がどこに割り当てられているかを示します。そして、[代表的なデモを見せてください](http://jsfiddle.net/)。私たちは[SSCCE(短く、自己完結型、正しい/コンパイル可能な例)](http://sscce.org/)を探しています。 –

+0

@DavidThomas - ニースリンク! –

答えて

1

javascript:プロトコルは、あなただけはURLでJavascriptを持っているときに使用されるが、イベントハンドラでそれを使用しないでください。

はここに私のテキストフィールドです。

同じIDを持つ2つの要素を持つことはできません。 IDは一意でなければなりません。

XHTMLでは、値のない属性はありません。 requiredではなく、required="required"を使用する必要があります。

nullの値を確認する必要はありません。テキストフィールドの値は決してnullではありません。

getElementByIdメソッドを使用して、idから要素を検索します。

function validate(input, name) { 
    if (name == 'name') { 
    if (input == '') { 
     document.getElementById('nameInfo').style.visibility = 'visible'; 
     alert("please enter a value"); 
    } else { 
     alert("valid entry."); 
    } 
    } 
} 

<input type="text" name="name" id="name" onblur="validate(this.value, this.id);" required="required" /> 
<div id="nameInfo" style="visibility:hidden; float:right;">Please fill in a name!</div> 
+0

+1、あなたはOPがXHTMLを使用していると思いますか? DOCTYPEはなく、実際のXHTMLはWeb上では非常にまれです。 XMLのようなマークアップは信頼できる指標ではありません。より良いSHORTAGを取り除くためにOPに伝えてください。 – RobG

+0

@RobG:自己閉鎖入力タグに基づいています。うまくいけば、OPは彼がXHTMLを使用しているかどうかを知っているので、その点が関係するかどうかを知ることができます。 – Guffa

+0

私はhtml5でそれを見たので、私はちょうど必要に使用 – droidus

関連する問題