5

プロジェクトの JavaScript を jquery に変更しています。Jquery を使用するのはこれが初めてであり、ばかげた間違いを犯していることを期待してください。以下のような単純な JQ アラート関数を .js ファイルに配置しました。

$(document).ready(function(){
  $("#stt").change(function(){
    alert("hi");
  });
});

したがって、目的は、id="stt" を持つ td 要素の値が変更されたときに警告メッセージをスローすることです。

<tr id="stttr"> 
<td id="stt"> <html:text property="stt" size="20" maxlength="20"  style="height:12px; width: 180px;" /></td></tr>

これは、jsp の head タグの間で jquery を参照する方法です。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>
<script src="javascript/SearchPanelJQ.js"></script>
<script src="javascript/CalendarPopup.js"></script>

Calendarpop.js は、置き換えたくない古い JavaScript ファイルです (すべてのブラウザーで正常に動作します)。IE でスクリプトのデバッグが有効になっているブラウザでこのページにアクセスすると、次のエラーが表示されます。

HTML1201: localhost is a website you've added to Compatibility View. 
ReportingTemplate.jsp
SEC7115: :visited and :link styles can only differ by color. Some styles were not     applied to :visited. 
ReportingTemplate.jsp
SCRIPT5007: The value of the property '$' is null or undefined, not a Function object 
SearchPanelJQ.js, line 1 character 1

最後の行は、セットアップに問題があることを示しています。何を教えてもらえますか?

jsdt jquery プラグインをインストールし、JQ v1.9 を使用しています。プロジェクトはStrutsプロジェクトです。

編集:1)JQ関数がjspに含まれている場合に機能します。別の .js ファイルにある場合は機能しません。2) http: を参照に含めても、document.ready 関数が同じ JSP にある場合にのみ機能し、別の .js ファイルにある場合には機能しません。プロジェクトの複数のページで同じ検証が使用されるため、これは目的に反します。

4

3 に答える 3

2

今後の参考のために:

  • Chrome(または他のユーザーが指摘した任意のブラウザ)で実行します

  • 右クリック > 要素の検査 > コンソール

  • エラー ログを読む (コンソールは、誤動作が発生している特定の行を特定するのに役立つ js、php、およびその他のエラーを提供できます)

君の

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>

する必要があります

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>

user2736012によって提供された理由は次のとおりです。

OPは、ページのフェッチに使用されたプロトコルを自動的に使用する「プロトコル相対」URLを使用しています。この場合、プロトコルが の場合、file://home/User/Desktop/foo.htmlプロトコルの相対 URL は になりますがfile://ajax.googlapis...、これはもちろん機能しません。ただし、http を使用してページをフェッチする場合は機能します。http://ajax.googleapis...

于 2013-09-24T17:58:43.863 に答える
1

問題が見つかりました。1.9シリーズの最新バージョンを自動的に選択する必要があるというチュートリアルを読んだので、JQバージョン1.9を参照しています。1.9.0または1.9.1に変更すると機能します。ただし、なぜ1.9が機能しなかったのかはまだわかりません。最新の 1.9.* バージョンを選択する必要があります。

しかし、少なくとも 1.9.1/0 にすることで、.js ファイルから動作します。

于 2013-09-24T19:02:58.977 に答える