我有一个表单来创建一个真/假问题。我试图有一个按钮来切换text_field的值从true和false。 (我真的不在乎它是怎么做的,我只是希望用户能够轻松地将答案改为真或假。
这就是我所拥有的,它只会将一次切换为false,只有在单击文本字段而不是按钮时才有效。我正在尝试学习javascript,所以请耐心等待......
<%= f.label :content, "Answer" %>
<%= f.text_field :content, :value => 'True', :readonly => true, :class => "d-id", :id => "answer" %>
<%= button_tag "Toggle True/False", :id => "answer", :class => "btn btn-small btn-inverse", :type => "button" %>
<script>
function checkAnswer() {
if ($("#answer").val('False'))
{
$("#answer").val('True');
}
if ($("#answer").val('True'))
{
$("#answer").val('False');
}
}
$(document).ready(function(){
$('#answer').click(function () {
checkAnswer();
});
})
</script>
答案 0 :(得分:2)
http://jsfiddle.net/jayblanchard/ene5w/
我清理了你的语法并提出了这个 -
function checkAnswer() {
var answer = $('#answer').val();
if ('False' == answer) {
$("#answer").val('True');
} else {
$("#answer").val('False');
}
}
此外,您有两个具有相同ID的元素,这在HTML页面中是不允许的。你会得到不可思议的结果。您可以将这些更改为类。
更改为按钮而非链接 - http://jsfiddle.net/jayblanchard/ene5w/1/
答案 1 :(得分:1)
试试这个:
if ($("#answer").val() === 'False') {
$("#answer").val('True');
} else {
$("#answer").val('False');
}