これは私のjavascriptファイルの抜粋です:
$(function() {
if ($('form#search').length > 0) {
setSearchForm();
}
});
function setSearchForm() {
var text=$('form#search input[type=text]');
if (text.val().length != 0) {
text.next('input[type=submit]').removeProp('disabled');
} else {
text.next('input[type=submit]').prop('disabled', true);
}
}
私の問題: すべてのサブページでこの.js
ファイルを使用していますが、すべてのサブページにsearch
フォームがあるわけではありません。
したがって、ドキュメントの準備ができたら、検索フォームの存在を確認し、検索フォームが存在する場合にのみ呼び出しsetSearchForm()
ます。
setSearchForm()
これがすべてのページでの実行を防ぐ唯一の方法であることがわかりました。js
検索フォームがなくても関数がトリガーされた場合、ファイルにある他の関数は機能しなくなるためです。
関数を何らかの形で書き直すなど、これに対するよりエレガントな解決策はありますか?
私はjQueryにかなり慣れていないので、解決策はおそらく単純なものです!
助けてくれてありがとう。