javascript - g:javascript在Firefox中工作,但在chrome中不工作

标签 javascript grails gsp

可以在Firefox中正常运行,但不能在Chrome中运行。有人能指出我正确的方向吗?

<g:javascript>
    function selectedStatus()
    {
      var index = j("#statusId");
      if(${statusValue} = ${Status.getAllEnums()})
      {
        index.selectedIndex = ${statusValue};
      }
    }
</g:javascript>

我正在将用户状态的值从 Controller 传递到gsp页面。我检查该值是否等于grails选择中的值之一,如果是,则将该“当前”值设置为在选择框中显示的值。

这是我的gsp ...
<g:formRemote name="custom_status" url="[controller: 'traffic', action: 'status']">
  <h4>
    <g:select id="statusId" name="MyStatus" from="${Status.getAllEnums()}" value="${statusValue}" noSelection="['':'Please Select...']" onload="selectedStatus()" onchange="document.getElementById('sub_status').value = ''"/>
  </h4>
    <g:textField name="sub_status" value="${subStatusValue}" />
    <g:submitButton name="submit_status" value="Apply Status" />
  </g:formRemote>

选择框会在Firefox中根据需要进行更改,但在Chrome中不会发生更改。

这是生成的HTML ...
<form onsubmit="jQuery.ajax({type:'POST',data:jQuery(this).serialize(), url:'/portal/traffic/status',success:function(data,textStatus){},error:function(XMLHttpRequest,textStatus,errorThrown){}});return false" method="post" action="/portal/traffic/status" id="custom_status">
  <h4>
    <select name="status" id="statusId" onload="selectedStatus()" onchange="document.getElementById(&#39;sub_status&#39;).value = &#39;&#39;" >

<option value="">Please Select...</option>

<option value="available" >available</option>

<option value="away" >away</option>

<option value="dnd" >dnd</option>

<option value="unavailable" >unavailable</option>

</select>
  </h4>
    <input type="text" name="sub_status" value="In a meeting" id="sub_status" />
    <input type="submit" name="submit_status" value="Apply Status" id="submit_status" />
  </form>
  <br/>

谢谢

最佳答案

为什么value="${statusValue}"在这里不起作用真的很奇怪。顺便说一句,您的Javascript代码可能无效(我不确定JS的结果,但是很有可能),因此请尝试以下操作:

<g:javascript>
    j(document).ready(function ()
    {
      j("#statusId").val('${statusValue}'); //I guess `j` is your prefix for jQuery, right?
    });
</g:javascript>

并删除onload="selectedStatus()"

关于javascript - g:javascript在Firefox中工作,但在chrome中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10796803/

相关文章:

c# - 如何在后面的for循环代码中调用javascript?

session - 多个 Grails 项目的单一身份验证

grails - 如何在gsp页面中为grails-gsp-link标记输入参数

grails - 如何在grasp gsp中使用g:datePicker来选择时间?

grails - 在 Grails 中使用 Groovy++ 的经验

grails - 如何在GSP页面中向body元素动态添加属性

javascript for 循环进入无限循环

javascript - 为什么加载失败并且 promise 没有得到解决?

javascript - 自定义应用程序启动屏幕

spring - 在 Tomcat 中热部署类文件