2014-01-28 49 views
0

我在索引頁上有一張地圖。我想點擊地圖並在該位置放置一個標記。點擊事件有一個函數,我想打開一個模式(jQuery對話框),並從另一個子頁面加載一個表格,現在位置填入正確的表單字段。將值傳遞給jQuery對話框中的表單輸入字段?

我的問題是將值(標記位置)傳遞給表單中的輸入字段。我的功能似乎工作,如果我把輸入字段的索引頁上的某個地方,但不是在對話框中的子模板。

我正在嘗試這個$('#test_input')。val(lng +','+ lat);但它只顯示毫秒值然後消失。你有什麼想法,爲什麼這不起作用?或者如何重建這個?謝謝!

function onMapClick(e) { 
     var lat = e.latlng.lat; 
     var lng = e.latlng.lng; 

     if (typeof marker != 'undefined') { 
      map.removeLayer(marker); 
      marker = L.marker([lat, lng], {icon: redMarker}).addTo(map); 
     } 
     else { 
      marker = L.marker([lat, lng], {icon: redMarker}).addTo(map); 
     } 


     $('#upload-modal').load('upload/ #myform'); 

     $('#test_input').val(lng + ',' + lat); //This is what I'm trying<---------- 

     $('#upload-modal').dialog({ 
       height: 550, 
       width: 500, 
       modal: false, 
       buttons: { 
        Upload: function() { 
         var dialog = $(this), 
          form = $('#myform'), 
          data = form.serialize(); 

        $('.off').remove(); 

        $.ajax({ 
         url: 'upload/', 
         data: data, 
         type: 'post', 

         success: function(response) { 
          res = $.parseJSON(response); 

          if (res['status'] == 'OK') { 
           alert('Thank you! Form has been submitted'); 
           dialog.dialog('close'); 
          } 

          else if (res['status'] == 'bad') { 
           delete res['status'] 
           var errors = res; 

           $.each(errors, function(key, value) { 

            var err = $('<span></span>', { 
                'class': 'off', 
                'text': value 
              }), 
             br = $('<br></br>', { 
              'class': 'off', 
             }), 
             input = $('#id_'+key).parent(); 

            br.appendTo(input); 

            err.appendTo(input); 

            err.css('color', 'red').css('font-size', '10px'); 

           }); 
          } 
         } 

         }); 

        } 
        } 
      });  
    } 

回答

0

看來#test_input是在你的形式,所以你不得不等待,直到另一種形式是完全加載,使用這樣的回調:

$('#upload-modal').load('upload/ #myform', function(){ 
    $('#test_input').val(lng + ',' + lat); 
}); 
+0

哦,是的!它正在工作!非常感謝你的梅蘭! – user3199840

相關問題