单选按钮选择将显示选择列表或文本字段,然后该值将查询并显示在另一个文本字段中

时间:2012-11-13 20:15:27

标签: javascript jquery jquery-selectbox

我有一个表单,当选择单选按钮时,它将查询数据库并填充选择列表或将选择更改为文本框以供用户输入。(主要是工作 - 不会回到文本框之后选择 - 而不是现在很重要)

然后我希望它从select或textbox获取值并将其放在字符串变量中。然后我想我可以从那里拿走它。我希望。 (我将使用字符串进行查询以获取其他信息以填充围兜号码)

这是我的JS / php一直在尝试的一切

$(document).ready(function () {
    var bibfield = "";

    $('#a1').change(function () {
        //$('#hiddenText').hide();  
        $('#hidden').empty();
        //$('#hidden').show();
        $.each(arrayShort, function (i, val) {
            $('#hidden').append('<option value="' + val + '">' + val + '</option>');
        });
    });

    $('#a2').change(function () {
        //$('#hiddenText').hide();
        $('#hidden').empty();
        //$('#hidden').show();
        $.each(arrayLong, function (i, val) {
            $('#hidden').append('<option value="' + val + '">' + val + '</option>');
        });
    });

    $('#a3').change(function () {
        //$('#hidden').hide();
        //$('#hiddenText')show();

        $('#hidden').replaceWith('<input name="hidden" id="hiddenText" type="text" size="26" >');

    });
})

这是我的表格

<input name="btn1" id="a1" type="radio" value="Radio button 1" />
<input name="btn1" id="a2" type="radio" value="Radio button 2" />
<input name="btn1" id="a3" type="radio" value="Radio button 3" />
<select id="hidden" name="hidden">
  <option selected></option>
</select>
<input type="text" name="sBib" />
<input type="text" name="eBib" />

如果选中了a1或a2,我需要填充select,但是如果选中了a3,那么我需要用文本框替换select BUT然后填充变量bibfield以便我可以用它查询

对此我是如此精疲力竭,无法直接思考所有的帮助表示赞赏!!!

1 个答案:

答案 0 :(得分:0)

这里你用hiddenText替换隐藏,并再次尝试找到已经消失的隐藏  需要更正你的代码,如下所示,我用相同的id =“hidden”替换整个选择或输入

$(document).ready(function () {
        var bibfield = "";
        // variable to indicate if select dropdown is available already otherwise create new
        var selectAvailable=true;
        $('#a1').change(function () {
            //$('#hiddenText').hide();  
            //$('#hidden').empty();
            //$('#hidden').show();
            $.each(arrayShort, function (i, val) {
                if(selectAvailable)
        {
        $('#hidden').append('<option value="' + val + '">' + val+ '</option>');
        }
        else
        {
                selectAvailable=true;
            $('#hidden').replaceWith('<select id="hidden" name="hidden">
                <option value="' + val + '">' + val + '</option></select>');
        }
            });
        });

        $('#a2').change(function () {
            //$('#hiddenText').hide();
           // $('#hidden').empty();
            //$('#hidden').show();
            $.each(arrayLong, function (i, val) {
            if(selectAvailable)
        {
            $('#hidden').append('<option value="' + val + '">' + val + '</option>');
        }
        else
        {
        selectAvailable=true;
            $('#hidden').replaceWith('<select id="hidden" name="hidden">
                <option value="' + val + '">' + val + '</option></select>');
        }

        });

        $('#a3').change(function () {
            //$('#hidden').hide();
            //$('#hiddenText')show();
           selectAvailable=false;
            $('#hidden').replaceWith('<input name="hidden" id="hidden" type="text" size="26" >');

        });
    });