我正在创建一个网站,用户需要在注册页面填写性别和年龄,然后才能继续。我的代码是这样的:
<%= form_for(@user) do |f| %>
<!--some other stuff-->
<%= f.label :gender %>
<%= f.select :gender, options_for_select(['M', 'F', 'N/A']), :id => "gender", :include_blank => "Please select..." %>
<%= f.label :age %>
<%= f.select :age, (17..75), :id => "age", :include_blank => "Please select..." %>
<br>
<br>
<div class='center'>
<%= f.submit "Save and continue", class: "btn btn-large btn-primary", :disabled => true %>
</div>
<% end %>
</div>
生成的 HTML:
<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="display:none"><input name="utf8" type="hidden" value="✓"><input name="authenticity_token" //other stuff></div>
<label for="user_gender">Gender</label>
<select id="user_gender" name="user[gender]"><option value="">Please select...</option>
<option value="M">M</option>
<option value="F">F</option>
<option value="N/A">N/A</option></select>
<label for="user_age">Age</label>
<select id="user_age" name="user[age]"><option value="">Please select...</option>
<option value="17">17</option>
// skipped this
<option value="75">75</option></select>
<br>
<br>
<div class="center">
<input class="btn btn-large btn-primary" disabled="disabled" name="commit" type="submit" value="Save and continue">
</div>
</form>
Javascript:
$(document).ready(function () {
$select_age = $("select#user_gender");
$select_gender = $("select#user_age");
var check_value = function () {
alert("asdf");
if ($select_gender.val() !== "" && $select_age.val() !== "") {
$("input[name='commit']").removeAttr("disabled");
}
};
$select_age.change(check_value()) // I've also tried onchange
$select_gender.change(check_value())
});
每当我从下拉列表中选择一个新选项时,我都应该收到一条显示“asdf”的警报。但这并没有发生。为什么?
最佳答案
尝试下面的代码
$select_age.on("change", check_value()) // I've also tried onchange
$select_gender.on("change", check_value())
关于javascript - 关于 Rails 上下拉 ruby 的更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255925/