1

これは私の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にかなり慣れていないので、解決策はおそらく単純なものです!

助けてくれてありがとう。

4

1 に答える 1

1

2つの関数を別々の.jsファイルに入れ、検索フォームのあるページにのみインポートします。

于 2012-10-20T14:18:47.577 に答える