jquery启用和禁用

时间:2011-05-22 22:41:38

标签: 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>

2 个答案:

答案 0 :(得分:0)

change在使用live

$('#usernames').live("change", userreply);时尝试使用问题

我怀疑您是否可以使用重置重置SELECT。您可以重置表单,该表单将重置其中的所有元素。 $('#formId')[0].reset();// OR just this.form.reset()

如果要在表单上保存一些元素,只需存储它们的值,重置表单,设置存储的值。

答案 1 :(得分:0)

关于启用停用问题,请查看this JsFiddle

我将复选框名称更改为ID,并完全重写了点击处理程序以使用jQuery 1.6。

BTW你的代码中有很多语法错误:)

玩得开心

ķ