質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

1回答

5253閲覧

AjaxZip3を2回動作させたい。

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2018/01/17 09:46

編集2018/01/17 10:09

###実現したいこと
・AjaxZip3を使って郵便番号から、住所を自動入力したい
・都道府県から市区町村までをつないだもの(ex 東京都港区浜松町)と都道府県・市区町村ごと(ex・東京都・港区・浜松町)それぞれのテキストボックスに入力したい

###発生している問題

「AjaxZip3.zip2addr」を2回動作させると1回目の呼び出しが無視?される

###該当のソースコード
※引数は以下の値が入っています
・zipCodeId ⇒郵便番号を入力するテキストボックスのid,name名
・fullAddressId⇒都道府県から市区町村までをつないだものを入れるテキストボックスのid,name名
・prefId⇒都道府県名を入れるテキストボックスのid,name名(ex,東京都)
・cityAddressId⇒市区町村を入れるテキストボックスのid,name名(ex 港区)
・townAddressId⇒町村名を入れるテキストボックスのid,name名(ex浜松町)

1 function searchAddressBtn_Click(zipCodeId, fullAddressId, prefId, cityAddressId, townAddressId) { 2 var postalcode = document.getElementById(zipCodeId.id).value; 3 if (postalcode) { 4 AjaxZip3.zip2addr(zipCodeId.name, '', prefId.name, cityAddressId.name, townAddressId.name, townAddressId.name) 5  AjaxZip3.zip2addr(zipCodeId.name, '', fullAddressId,fullAddressId); 6 } 7 } else { 8 alert("郵便番号が入力されていません"); 9 }

###試したこと
when・doneを使った処理を試したのですが、5行目が実行されずに3行目が実行された結果が得られた。
試したコード

1 if (postalcode) { 2 $.when( 3 AjaxZip3.zip2addr(zipCodeId.name, '', prefId.name, cityAddressId.name, townAddressId.name, townAddressId.name) 4  ).done( 5  AjaxZip3.zip2addr(zipCodeId.name, '', fullAddressId,fullAddressId); 6 ); 7   }

AjaxZip3のライブラリ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/01/17 10:01

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。また、プラグイン/ライブラリは公式配布サイトのURLを質問文に追記ください。(URLにはリンクを張ることができます)
guest

回答1

0

ベストアンサー

状況再現できました。

動くサンプル:https://jsfiddle.net/7ktbp291/


ソースを見るに、読み込みに1つのオブジェクトを使用しているため、並列での動作は出来ないと思います。

【ajaxzip3.github.io/ajaxzip3-source.js at master · ajaxzip3/ajaxzip3.github.io · GitHub】
https://github.com/ajaxzip3/ajaxzip3.github.io/blob/master/ajaxzip3-source.js

AjaxZip3.onSuccess が設定できるようなので、それを使えば何とかできるかもしれません。

js

1$( _=> { 2 $( '#target' ).click( function() { 3 AjaxZip3.onSuccess = function() { 4 AjaxZip3.zip2addr( 'target', 'all', 'all', 'all' ); 5 } 6 AjaxZip3.zip2addr( 'target', '', 'a', 'b' ); 7 } ); 8} ); 9```**動くサンプル:**[https://jsfiddle.net/7ktbp291/1/](https://jsfiddle.net/7ktbp291/1/)

投稿2018/01/17 10:46

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/17 10:53

素早い回答ありがとうございました! AjaxZip3を今回初めて扱い、なかなかうまくいかず、苦労しておりました。 わかりやすく状況再現までしていただき、本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問