如何将变量从JavaScript传递给HTML?

时间:2014-09-19 05:13:23

标签: javascript jquery html

我的文件中定义了一个JavaScript,如下所示:

<script language="javascript">
    var transports = "<%=api.transports%>";
    var httpsTransport;
    var httpTransport;
    var splittedTransports= transports.split(',');
    for(i = 0; i < splittedTransports.length; i++)
    {
        if(splittedTransports[i]=="https") {
            httpsTransport="https";
        } else if (splittedTransports[i]=="http") {
            httpTransport="http";
        }
    }
</script>

我想在我的HTML页面中阅读它:

<div class="checkbox">
    <label class="checkbox inline">
        <input type="checkbox"  id="transport_http" name="transport_http"  value="http" <%if(httpTransport=="http"){%>checked<%}%> />
    </label>
    <label class="checkbox inline">
        <input type="checkbox" id="transport_https" name="transport_https"  value="https" <%if(httpsTransport=="https"){%>checked<%}%>/>
    </label>
</div>

但现在我收到一条错误消息:

org.mozilla.javascript.EcmaError: ReferenceError: "httpTransport" is not defined.

我在这里做错了什么?

我想允许用户选择一个复选框并保存表单,当他尝试编辑表单时,我想显示他在之前的操作中保存了什么。 因此,当他尝试编辑时,我尝试从后端读取值,并希望将该特定选项显示为已选中。

2 个答案:

答案 0 :(得分:1)

<script language="javascript">
var transports = "<%=api.transports%>";
var splittedTransports= transports.split(',');
for(i = 0; i < splittedTransports.length; i++)
{
if(splittedTransports[i]=="https"){
   document.getElementById("transport_https").checked = true;
}else if (splittedTransports[i]=="http"){
   document.getElementById("transport_http").checked = true;
}
}

</script>

HTML:

<div class="checkbox">
       <label  class="checkbox inline " >
           <input type="checkbox"  id="transport_http" name="transport_http"  value="http" />
       </label>
       <label  class="checkbox inline" >
           <input type="checkbox" id="transport_https" name="transport_https"  value="https"/>
       </label>
</div>

答案 1 :(得分:1)

代码中的变量声明,但 已定义。 首先给它们一个随机值,然后用if

更新它
<script language="javascript">
 var transports = "<%=api.transports%>";
    var httpsTransport = 'no';
    var httpTransport = 'no';
    var splittedTransports= transports.split(',');
    for(i = 0; i < splittedTransports.length; i++)
    {
    if(splittedTransports[i]=="https"){
        httpsTransport="https";
    }else if (splittedTransports[i]=="http"){
        httpTransport="http";
    }
    }

</script>