2016-02-26 102 views
0

我想从JS脚本中保存一个HTML字段(用于表单)。Javascript赋值给HTML字段

这是代码:

表格

<form class="new_client" id="new_client" action="/clients" accept-charset="UTF-8" method="post"> 
     <div class="form-group"> 
     <input class="form-input" type="hidden" name="client[city]" id="client_city"> 
     </div> 
     <div class="form-group"> 
     <input class="form-input" type="hidden" name="client[address]" id="client_address"> 
     </div> 
     <div id="locationField"> 
     <input autocomplete="off" class="autocomplete" placeholder="Enter your address" type="text"> 
     </div> 
     <div class="text-center"> 
     <button class="btn button-general ">Save</button> 
     </div> 
</form> 

和JavaScript:

function configureGeoAutocomplete(context) { 
    if(context === undefined) { 
    context = $('body'); 
    } 
    var element = context.find('.autocomplete') 
    //It doesn't really matter what this line does, it's from Google Places API 
    var autocomplete = new google.maps.places.Autocomplete(
     element[0], {types: ['geocode']}); 

    autocomplete.addListener('place_changed', fillInAddress) 
} 

function fillInAddress() { 
    var client_address = autocomplete.getPlace().formatted_address; 
    document.getElementById("client_address").value = client_address; 
} 

装载的模态时,JavaScript的查询,其中所述的形式是

jQuery(function() { 
    $('div.modal').on('loaded.bs.modal', function(e) { 
    configureGeoAutocomplete(context); 
    } 
} 

我想将该client_address保存到文本字段,以便在提交表单时可以获得该信息。

+0

'js'的哪个部分不返回预期的结果? – guest271314

+0

我对js知之甚少,但在fillInAddress()函数中,第二行应该修改id为client_address的HTML字段,或者至少这就是我想在那里做的事情。 –

+0

on('loaded.bs.modal')变量中的上下文是否已初始化? – muuk

回答

0

显然,出于某种原因,如果我搜查ID它不是节约领域的信息化的元素。如果我正在按级别搜索:

function fillInAddress() { 
    var place = autocomplete.getPlace(); 

    $(".client-address").val(place.formatted_address); 
} 

它按预期工作。

0

如果您允许使用它们,听起来像是一个很好的cookie选择:http://www.w3schools.com/js/js_cookies.asp。另一个想法是在查询字符串中传递它。这不是PII或类似的东西。在该输入上尝试一个事件代码。我不喜欢打“输入”!

onkeypress="if (event.keycode==13) { // do something }" 
+0

我正在查看cookie,但我不明白该怎么做。表单提交后如何使用它。 –

+0

所以,如果你设置一个cookie值,像这样:'setCookie(“client_address”,document.getElementById(“client_address”)value,30);''''''''''''var caddress = getCookie(“client_address” );'30是直到该值过期的天数。我通常使用720,这给了我2年。 – WWPTV

+0

谢谢,但我需要做相反的事情,使“client_address”.value成为我从autocomplete.GetPlace()获得的内容。formatted_address –

0

处理表单提交事件:

$(function() { 
    $("#new_client").submit(function(e) { 
     e.preventDefault(); 
     // This is your value stored in the field. 
     $("#client_address").val(); 
    }); 
})