2014-02-01 4 views
0

У меня есть флажок с пояснительным текстом:Изменить текст если флажок - флажок

<%= f.label :is_company do %> 
    <%= f.check_box :is_company %>&nbsp;&nbsp; <span>Are you Representing a Company/Organization ?</span> 
<% end %> 

Мне нужно изменить текст (если флажок срабатывает) от Are you Representing a Company/Organization ? к I'm representing a Company/Organization !

Может кто-нибудь помочь мне ?

HTML Выход:

<label for="user_is_company"> 
    <input name="user[is_company]" type="hidden" value="0"> 
    <input id="user_is_company" name="user[is_company]" type="checkbox" value="1">&nbsp;&nbsp; 
    <span>Are you Representing a Company/Organization ?</span> 
</label> 

Я работаю в CoffeeScript

Так я сделал эту мерзость:

$(document).on "ready page:load", -> 
    check = -> 
    if input.checked 
     document.getElementById("label_cmp").innerHTML = "I am representing a Company/Organization !" 
    else 
     document.getElementById("label_cmp").innerHTML = "Are you representing a Company/Organization ?" 
    input = document.querySelector("input[type=checkbox]") 
    input.onchange = check 
    check() 

, но я думаю, что его много кода, ни за что .. .

+0

Что вы пытаетесь до сих пор? – BroiSatse

+0

Используйте Javascript. Переключить текст между 'span' с статусом флажка. –

+0

Я довольно новичок в кофе, поэтому я использовал много кода, найденного в учебниках или фрагментах. Но, похоже, я не могу заставить его работать. –

ответ

1

Что-то вроде этого следует работа. Если это не так, попробуйте сыграть и настроить, а затем вернуться, если у вас все еще есть проблемы.

$(document).on "ready page:load", -> 
    $("input#user_is_company").on 'change', -> 
    if $(this).is(":checked") 
     $("#label_cmp").text("I'm representing a Company/Organization !") 
    else 
     $("#label_cmp").text("Are you Representing a Company/Organization ?") 

Примечание: есть, возможно, еще более короткий путь, чтобы сделать это с помощью JQuery toggle, но я ограничил знание JS.

+0

Не работает, но просматривает его. –

+0

Не стесняйтесь направить какие-либо ошибки. Я сомневаюсь, что он просто будет работать с копией/вставкой. Скорее всего, придется внести несколько поправок. –

+0

Не могли бы вы присоединиться ко мне в чате? -> http://chat.stackoverflow.com/rooms/46562/coffe-toggle –

0
$ -> 
    $("#user_is_company").on 'change', -> 
     $("#label_cmp").text if $(this).is(":checked") then "I am representing a Company/Organization !" else "Are you representing a Company/Organization ?" 

компилирует ...

$(function() { 
    return $("#user_is_company").on('change', function() { 
    return $("#label_cmp").text($(this).is(":checked") ? "I am representing a Company/Organization !" : "Are you representing a Company/Organization ?"); 
    }); 
}); 

Демо: http://jsfiddle.net/VcFCL/

Некоторые замечания по поводу моего выбора кода ...

# jquery shorthand form for on-ready wrapper function 
# ensures DOM is loaded before executing inner function 
$ -> 
    # identify elements by ID alone, as ID should be unique on the page 
    # listen for `change` event on selected element, and run callback 
    $("#user_is_company").on 'change', -> 
    # set the text of the label conditionally by the `checked` status of the selected element 
    $("#label_cmp").text if $(this).is(":checked") then "I am representing a Company/Organization !" else "Are you representing a Company/Organization ?" 
Смежные вопросы