0

だから私は、クライアントの見積もり依頼フォームがあるページを持っています。

ドキュメントタイプは

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">

私がやっていることは、jquery を介してフォーム送信ボタンを生成することです。そのため、クライアント ブラウザーで js が無効になっている場合、送信ボタンは表示されません。

HTMLは次のとおりです。

    <div id="buttonscript">


    </div>

Jクエリ

<script type="text/javascript" >
   $(document).ready(function(){
   $("#buttonscript").html('<input type=\"image\" name=\"Submit\" src=\"<?=$img_dir?>/button-submit_off.png\" alt=\"Submit\" class=\"nostyle\" style=\"margin-left:-4px;\" />');
});
</script>

すべてのブラウザで正常に動作しますが、FF のようです。

ページに別$(document).ready(function() {のページがある場合、競合が発生しますか?

2 つ目は、フォームで jquery.validate プラグインを呼び出すことです。

アップデート

"の前にすべてのエスケープを削除しようとしました。うまくいきませんでした。私が知る限り、コンソールにエラーはありません。どこでも正常に動作しますが、FF.

更新 *私は NOOB です*

とにかく、私は、jqueryが未定義であるというエラーが表示されていることを知っていることを考えると、何かファンキーなことが起こっている必要があることに気付きました....そして、同じドメインからのみスクリプトを実行できるようにする.htaccessディレクティブを思い出しました。以前は私のjqueryライブラリをホストしていましたが、Googleにそれを任せることにしました....つまり、私のコードには何も問題はありませんでした...それはサーバー構成でした..最終的にそれを理解しました!

4

3 に答える 3

0

doctype を に変更すると機能します<!DOCTYPE html>か?

競合が発生した場合に備えて、次のようにコードをラップしてみてください。

(function($){
    // safely use $ as an alias for jQuery in here
}(jQuery));

コンソールの DOM を見ると、何か挿入されていますか? つまり、何も挿入されていないことが問題なのか、それとも挿入されているものが間違っているのか。

いずれにせよ、あなたがやろうとしていることに対するより良い解決策があると思います:htmlタグにno-jsクラスを追加します:

<html class="no-js">

次に、jQuery を介してクラスを削除します。

jQuery(function($){
    $('html').removeClass('no-js').addClass('js');
});

次に、をハードコーディングできますが、inputJavaScript がない場合は非表示にします。CSS では、次のようなものを配置できます。

.no-js #buttonscript{ display:none; }

そうすれば、挿入についてまったく心配する必要はありません。

于 2012-06-05T19:42:52.597 に答える
0

シングル クォータから始めたのに、なぜダブル クォータにスラッシュを追加するのか疑問に思っています。

'<input type=\"

スラッシュを削除してみてください

于 2012-06-05T19:03:36.400 に答える
0

それはすべてサーバー構成に帰着しました。jquery ライブラリが現在外部でホストされていることに気付きました。そして、外部スクリプトをブロックする .htaccess ディレクティブがありました。ばかげて、私は何年も前にそれをしたことを忘れていました!

于 2012-06-05T22:27:13.173 に答える