プロが教えるわが家の防犯対策術!

フォームのテキストエリア(id="kazu")に入力された文字を全角から半角に変換する
下記のような jQuery のコード(※1)があるのですが、
これをJavascriptのように外部ファイルから動作させる方法はあるでしょうか?

inputの記述は、<input type="text" size="2" name="kazu" value="1" id="kazu"> です。

各ページ毎に jQuery のコード(※1)を記述し、input にID(kazu)を設定すると正常に動作するのですが、各ページにjQuery (※1)を記述せず、ヘッダ内で、次のように外部から呼び出してみたのの何の変化も起こりません。。。
<script type="text/javascript" src="../form.js"></script>

※1階層上にform.jsがあります。
※form.jsの内容は、(※1)のコードのみが書かれています。


(※1)
-----------------------------------------------------------
<script>
$(function(){
$("#kazu, #hoge").change(function(){
var str = $(this).val();
str = str.replace( /[A-Za-z0-9-!”#$%&’()=<>,.?_[]{}@^~¥]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 65248);
});
$(this).val(str);
}).change();
});
</script>
------------------------------------------------------------

以上、何卒よろしくお願い申し上げます。

A 回答 (2件)

こんにちは



一番多そうなものをいくつか・・・

1)外部ファイル(form.js及びjQuery)がきちんと読み込めていない
 アドレスが違っているなど
2)読み込み順が悪い
 form.jsの前にjQueryを読み込んでいない
3)ひょっとしてだけど…
 form.jsのファイル内に<script>タグも記述されている

あたりが、怪しいのではないかと・・・
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ご教授いただきました、②(読み込み順序)を修正しましたところ、正常に動作しました。
今回ご教授いただきましたお二方に感謝します。

ありがとうございました!

お礼日時:2019/12/27 10:54

> <script type="text/javascript" src="../form.js"></script>


</body>の上でこれ書いてみたらいかがですか。
<head>内に書いていたりして、まだDOM要素が出来上がっていないのにJSを読み込むから、イベントハンドラを設定できていないのではないでしょうか。

これ自体はjQueryではありません。jQueryを利用したjsスクリプトです。
ですから、当然ですが、<head>内にはjQueryを読み込むタグが必要になります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!