2011-02-08 6 views
2

私は、この入力ファイルのHTMLフォームを持っている:送信フォームをアクティブにする前にjqueryフォームでチェックしますか?

<input type="file" id="file" class="file customfile-input" name="file_upload"> 

と私は、これは送信ボタンを持っている:

<input type="submit" value="Publish!" id="publish_button" name="submitPhoto" class="yellow_gradient big_button"> 

私は、入力ファイルのフィールドが充填されたかどうかを確認するためにcheckes jqueryのスクリプトをやってみたかったです送信ボタンをアクティブにする前に、ファイルを使用してください。 感謝:))についてどのように

答えて

1

$("#file").bind("change", function() { 
    $("#publish_button").attr("disabled", this.value.length === 0); 
}); 

これは、右のファイル入力の変更内の値の後に#publish_buttonを再度有効にします。

の作業例:http://jsfiddle.net/andrewwhitaker/hUDUC/1/

+1

@getaway - 注意してください:送信ボタンは、JavaScriptが無効(ジャバスクリプトをサポートしていないなど、スクリーンリーダー)と最初に人々を無効にしてフォームを送信することはできません。最初にjavascriptで無効にする変更については、http://jsfiddle.net/hUDUC/2/を参照してください。 –

+0

@StephenP:素晴らしい点! 'bind'呼び出しの前にスクリプトを追加することもできます。JSをマークアップから外すことができます。 –

+0

はい、私は通常、別の '.js'ファイル内にすべてのjavascriptを持っていますが、' .ready() 'を使用しても無効になる前に誰かがボタンをクリックできるようにわずかなレースがあります。これまでに異議を唱えた –

関連する問題