這個工作完美,因爲我希望它在Firefox中,但它不適用於Chrome。任何人都可以指出我正確的方向嗎?g:JavaScript在Firefox中工作,但不在Chrome中
<g:javascript>
function selectedStatus()
{
var index = j("#statusId");
if(${statusValue} = ${Status.getAllEnums()})
{
index.selectedIndex = ${statusValue};
}
}
</g:javascript>
我將一個用戶狀態值從控制器傳遞給gsp頁面。我檢查該值是否等於grails select中的某個值,如果是,則將該「當前」值設置爲出現在選擇框中的值。
這裏是我的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('sub_status').value = ''" >
<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/>
感謝
「一些服務器端代碼沒有按'在特定的瀏覽器中工作'不是一個很好的問題。將其分解爲「某些服務器端代碼不會生成我期望的客戶端代碼」或「某些客戶端代碼在特定瀏覽器中不起作用」。 – Quentin
你對這段代碼有什麼結果HTML? –
@IgorArtamonov我得到一個包含狀態列表的選擇框。刷新後,在Firefox中,狀態將是我設置狀態的任何狀態,在Chrome中它保持默認值,無需選擇。 – chuckliddell0