включение и выключение jquery

#jquery

#jquery

Вопрос:

Я добавил функцию отключения / включения, но меню выбора всегда отключены. Я хотел бы включить их в зависимости от того, нажимает пользователь флажок или нет. Флажок ответа пользователя включен #usernames , а флажок текстовых эффектов включен #boxcode, #colors .

Также у меня есть функция очистки, которую я хочу использовать для удаления значений из #display, #message, #names, #boxcode , но она ничего не делает при нажатии кнопки.

Jquery

 function userreply() {
    $('#display').text('startreply '   'middlereply '   $('#usernames').val()   ' endreply '   $('#message').val());
    $("input:checkbox").click(function() {
        $("#usernames").attr("disabled", !this.checked);
    });
}

function texteffect() {
    $('#display').text('starttag '
    $('#message').val()   ' endtag '   $('#boxcode').val());
    $("input:checkbox").click(function() {
        $("#boxcode, #colors").attr("disabled", !this.checked);
    });
}

function clear() {
    $('#display, #message, #names, #boxcode').reset();
}

$('#message').keyup(userreply);
$('#usernames').change(userreply);
$('#boxcode').change(texteffect);
  

HTML

 <form>
    <input type="checkbox" name="enableuserreply" onclick="enable_text(this.checked)" /> Enable User Reply<br />
    <input type="checkbox" name="enapletexteffect" onclick="enable_text(this.checked)" /> Enable Text Effect<br />
    <select id="usernames" disabled="disabled">
        <option value="">Users</option>
        <option value="Alex">Alex</option>
        <option value="Jeff">Jeff</option>
        <option value="Amy">Amy</option>
        <option value="Kate">Kate</option>
    </select>
    <select id="boxcode" disabled="disabled">
        <option value="">Codes</option>
        <option value="[b][/b]">Bold</option>
        <option value="[i][/i]">Italics</option>
        <option value="[u][/u]">underline </option>
        <option value="[s][/s]">Strike</option>
        <option value="[sup][/sup]">Super Script</option>
        <option value="[sub][/sub]">Sub Script</option>
        <option value="[center][/center]">Center</option>
        <option value="[big][/big]">Big</option>
        <option value="[small][/small]">Small</option>
        <option value="[br]">Line Break</option>
        <option value="[url=][/url]">Link</option>
        <option value="startpicture endpicture">Picture</option>
        <option value="[color=][/color]">Color</option>
    </select>
    <select id="colors" disabled="disabled">
        <option value="">Color</option>
        <option value="red">red</option>
        <option value="blue">blue</option>
        <option value="green">green</option>
        <option value="white">white</option>
    </select>
    <input id="message" type="text" />
    <input type="button" value="Clear" onclick="clear()" />
</form>

<pre id="display"></pre>
  

Ответ №1:

Что касается вашей проблемы с включением-отключением, взгляните на этот JsFiddle.

Я изменил названия флажков на идентификаторы и полностью переписал обработчики кликов для работы с jQuery 1.6.

Кстати, в вашем коде было довольно много синтаксических ошибок 🙂

Получайте удовольствие

K

Комментарии:

1. потрясающе!! это именно то, что я ищу. можете ли вы показать мне, как это добавить $('#display').text('startreply ' 'middlereply ' $('#usernames').val() ' endreply ' $('#message').val()); я хотел бы добавить значения к элементу pre на основе выбранных пользователями

2. Для вашего сообщения #display вам необходимо добавить обработчик в форму, например $('form').change(function(){ $('#display').text('startreply ' 'middlereply ' $('#usernames option:selected').val() ' endreply ' $('#message').val()); });

Ответ №2:

change есть проблемы в IE, попробуйте использовать live например $('#usernames').live("change", userreply);

Я сомневаюсь, что вы сможете сбросить SELECT с помощью reset. Вы можете сбросить форму, которая сбросит все элементы в ней. $('#formId')[0].reset();// OR just this.form.reset()

Если вы хотите сохранить некоторые элементы в форме, просто сохраните их значение, сбросьте форму, верните сохраненные значения обратно.