2017-11-17 1 views
3

ねえ、これは問題です。私はjQuery.change()メソッドを使用しています。実際にキーボードで何かを変更すると正常に動作します。私がHTMLページの<input type="text">フィールドに何かを入力すると、.change()メソッドが呼び出されて文字が変更されたということになります。キーボードからの入力を使わずにテキストが変更された場合、.change()を起動するにはどうすればよいですか?

しかし、今問題は、<input type="text">のテキストをjQuery経由で変更していて、テキストが変更されたときに入力キーボードを使用しないために.change()が発生しないことです。私はすでにさまざまな方法を試しましたが、うまくいかないようです。キーボード入力による変更を行う場合にのみ機能します。

.change()は、キーボードからの入力を使わずにテキストが変更された場合、どうすれば起動できますか?

これはHTMLの一部です:

<label for="AddLongitude">*Longitude: </label> 
<label id="Add_Long_Label" style="color:red"></label> 
<input type="text" id="AddLongitude" name="Add_ServiceCompany" 
    placeholder="Tap on the map" maxlength="18" data-clear-btn="true" readonly/> 

<label for="AddLatitude">*Latitude: </label> 
<label id="Add_Lat_Label" style="color:red"></label> 
<input type="text" id="AddLatitude" name="Add_ServiceCompany" 
    placeholder="Tap on the map" maxlength="18" data-clear-btn="true" readonly/> 

これは、jQueryの一部です:

$("#AddLongitude").change(function() { 
      if ($("#AddLongitude").val() == "") { 
       $("#Add_Long_Label").text("This field is mandatory."); 
       $("#Add_Lat_Label").text("This field is mandatory."); 
      } 
      else { 
       $("#Add_Long_Label").text(""); 
       $("#Add_Lat_Label").text(""); 
      } 
     }); 

これはどこ値の変更一部です:

$("#AddLongitude").val(e.latlng.lng); 
$("#AddLatitude").val(e.latlng.lat); 

e.latlng .lngまたはe.latlng.latは、書き込む値を保持する変数です。

+1

何が間違っているかを確認するコード – guradio

+1

いくつかのコードを投稿できますか? –

+0

私は元の投稿 – Uraforclain

答えて

2

ユーザー入力ではないため、値を変更した後でchange()関数を手動で起動する必要があります。 change()メソッドは、ユーザーだけが値を変更しました。

$("#AddLongitude").val(e.latlng.lng).change(); 
$("#AddLatitude").val(e.latlng.lat).change(); 
+0

これはブラボーです!ウルの助けてくれてありがとう!あなたの答えを提供しただけでなく、理解しやすい説明を与えました!名誉!あなたの素晴らしいChathura Buddhika! – Uraforclain

+0

'$("#AddLongitude ")を使うこともできます。trigger( 'change');' –

関連する問題