Jquery代码,单击单选按钮选择一个选项

时间:2015-03-31 18:28:53

标签: javascript jquery javaquery

你好我是Html / Java(脚本/查询)/ css的新手,半年左右 我几乎没有问题 现在我试图制作一个功能/代码,这样做:我有2个单选按钮。
单击第一个单选按钮选择第一个选项,然后删除其他选项。
在单击第二个单选按钮时打开其他选项并删除第一个选项,将其专用于第一个单选按钮

<form  enctype="multipart/form-data">
    <fieldset>
        <legend>מפרט טכני של הסמארטפון:</legend>
        <label for="memory">זיכרון פנימי:</label>
        <input id="less1" type="radio" value="less" name="memory" onclick="(myFun())" /> פחות מ 1GB
        <input id="more1" type="radio" value="more" name="memory" onclick="(myFun1())" />מעל 1GB
        <br />
        <label for="extra">אפשרות להרחבת זיכרון:</label>
        <br />
        <select size="5" id="sel">
            <option name="extra" value="no1" id="no">לא</option>
            <option name="extra" value="yes8">כן,8GB</option>
            <option name="extra" value="yes16">כן,16GB</option>
            <option name="extra" value="yes32">כן,32GB</option>
            <option name="extra" value="yes64">כן,64GB</option>
        </select>
        </fieldset>
</form>

        function myFun() {
        $("#sel").prop('size', "1")
        select('option', $("no")).select('option:not(:selected)').remove()         
    }
    function myFun1() {
        $("#sel").prop('size',"4")
    }

我在这里做了另一个话题,这对我有点帮助(jQuery on change only shows the selected option, remove/disable rest of them

1 个答案:

答案 0 :(得分:0)

代码可以满足您的需求。我删除了select()事件,因为在使用鼠标选择文本时会触发该事件。

最好隐藏/显示元素而不是删除它们。

function myFun() {

    // 1. Find the first option and set as selected
    $("#sel").find('option').first().prop("selected",true)
    // 2. Find its not selected siblings and hide it
    .siblings('option:not(:selected)').hide();

    // 3. The first radio button is selected, so show the first option
    $("#no").show();

}

function myFun1() {

    // 1. Find the last option, set as selected and show it
    $("#sel").find('option').last().prop("selected",true).show()
    // 2. Find its siblings and show them
    .siblings('option:not(:selected)').show();

    // 3. Hide the first option
    $("#no").hide();

}