2016-11-14 11 views
2

フォームのすべてのフィールドを調べて、フィールドにデータが入力されているかどうかを確認します。すべてのフィールドが入力されたら、saveボタンが表示されます。動作するコード、(!)とjQuery:Each Loop Oddity

This is the Fiddle ...

This is the same in JavaScript

を反復処理するjQueryの-オブジェクトは:

formElements = $ 'form input[type="text"], form input[type="number"], form textarea' 

機能

formFilled = -> 
    filled = true 
    formElements.each -> 
    if $(this).val().length is 0 
     filled = false 
    filled 

イベントハンドラ

formElements.on 'keyup', (keyup) -> 
    keyup.preventDefault() 
    if formFilled() 
    save.show() 
    else 
    save.hide() 

何か提案がありますか?私は答えを知っている

+0

どのようなエラーを取得していますか? –

+0

保存ボタン 'save'は決して表示されません(常に隠されています)... – Timo

+0

ここでは非同期のものは何もありません。あなたの 'keyup'ハンドラはまったく呼び出されますか? 'formElements'は実際に何かを持っていますか? –

答えて

1

#:

のJavaScript番号入力フィールドを検証し、数字のみの値を受け入れます。

私はテキスト入力...これらのフィールドを愚かにテストしました。

コードは問題ありません。ちょうどテストは悪かった。あなたの時間を無駄にして申し訳ありません。

これは動作します:あなたが

formInputs = $ 'input[type="text"], input[type="number"], textarea' 

formFilled = -> 
    filled = true 
    formInputs.each -> 
    if $(this).val().length is 0 
     filled = false 
    filled 

formInputs.on 'keyup', (keyup) -> 
    if formFilled() 
    saveButton.show() 
    else 
    saveButton.hide()