以下javascript代码通过其IP检测用户所在国家/地区:
<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script>
<script language="JavaScript">
document.getElementById("country").value(geoip_country_name());
</script>
<script language="JavaScript">
document.write(geoip_country_name());
</script>
在第二个脚本中,我试图获取国家/地区的名称并将其传递给与国家/地区属性对应的输入文本:
<h:form id="newCustomerForm">
<fieldset>
<legend>Register Form</legend>
<p:outputLabel value="Country :" for="country"/>
<p:inputText id="country"
value="#{customerMB.country}"
title="Country"
required="true"
requiredMessage="The country field is required.">
</fieldset>
</h:form>
更新
<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script>
<script language="JavaScript"> window.onload = function() {
document.getElementById("country").value =geoip_country_name();
};
</script>
<script language="JavaScript">
document.write(geoip_country_name());
</script>
但这不起作用。关于如何修复我的代码的任何想法?
答案 0 :(得分:1)
您设置值的语法不正确。 value
是您指定的属性,而不是您调用的函数,因此它应该是:
document.getElementById("country").value = geoip_country_name();
您需要将此脚本放在country
元素之后,或者在window.onload
处理程序中运行它:
window.onload = function() {
document.getElementById("country").value = geoip_country_name();
}
答案 1 :(得分:0)
您需要通过参数/ jquery
添加到文本框var input = $('#yourId');
var text = input.val();
input.val(text.substring(0, 1) + '.' + text.substring(1));
答案 2 :(得分:0)
问题是,您希望在“country”元素存在之前加载JavaScript。
您必须将JavaScript部分放在HTML文件的末尾或在文档就绪事件中执行此部分,使用jQuery,您可以使用$(document).ready(function...);