0

これは Firefox では完全に機能しますが、Chrome では機能しません。誰かが私を正しい方向に向けることができますか?

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

コントローラーから gsp ページにユーザー ステータスの値を渡しています。値が grails 選択の値の 1 つと等しいかどうかを確認し、等しい場合は、この「現在の」値を選択ボックスに表示される値として設定します。

これが私の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/>

ありがとう

4

1 に答える 1

1

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()"

于 2012-05-29T15:00:44.980 に答える