Mark Reginald James wrote:
Allen Walker wrote:
No such luck again. Here's the generated HTML:
Looking at the Prototype code, observe only calls
the function if the value has actually changed.
So one way would be to move the observer inline:
:onchange => remote_function(:url => ...)
Or in this case it would be faster & simpler to keep
everything client-side:
function display_balance(gstatus) {
if (gstatus == '' || gstatus == 'Due')
$("balance_div").hide();
else
$("balance_div").show();
}
:onchange => 'display_balance(value)'
<%= javascript_tag "$('guarantee_status').onchange()" %>
--
Rails Wheels - Find Plugins, List & Sell Plugins -
http://railswheels.com
Trying the client side I did:
<%= f.select :status, [['Due','Due'],['In Progress','Paid']], {},
{:onchange => 'display_balance(value)'} %>
and played in application.js:
function display_balance(gstatus) {
if (gstatus == '' || gstatus == 'Due')
$("balance_div").hide();
else
$("balance_div").show();
}
Generated HTML:
<select id="guarantee_status" name="guarantee[status]"
onchange="display_balance(value)"><option value="Due">Due</option>
<option value="Paid" selected="selected">In Progress</option></select>
</p>
<div id="balance_div" style="display:none">
<p>
<b>Remaining Balance</b> )<br />
<input id="guarantee_balance" name="guarantee[balance]" size="30"
type="text" value="2430.0000" />
</p>
</div>
It doesn't work. I'm sure I'm missing something. I'm pretty unskilled of
javascript