将javascript变量传递给输入文本

时间:2014-02-27 12:19:46

标签: javascript input primefaces

以下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>

但这不起作用。关于如何修复我的代码的任何想法?

3 个答案:

答案 0 :(得分:1)

您设置值的语法不正确。 value是您指定的属性,而不是您调用的函数,因此它应该是:

document.getElementById("country").value = geoip_country_name();

您需要将此脚本放在country元素之后,或者在window.onload处理程序中运行它:

window.onload = function() {
    document.getElementById("country").value = geoip_country_name();
}

FIDDLE

答案 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...);