单击单选按钮,获取带有文本字段的文本框

时间:2013-11-09 07:08:27

标签: javascript jquery html radio-button

我正在使用一些单选按钮对页面进行编码并遇到一些问题。这是我的 当前输出

enter image description here

以下是我的代码

<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <style>
        #sitehtn {
            display: none
        }

        .container {
            width: 100%;
            height: 600px;
            background-color: rgb(179, 174, 174);
        }
        #datepickerT {
            margin-left: 2em;
        }
        .eventDateDiv {
            height: 150px;
            width: 30%;
            margin-left: auto;
            margin-right: auto;
        }
        #daysBetween {
            margin-top: -1.4em;
            margin-left: 30%;
        }
        .eventShowDiv {
            height: 250px;
            width: 30%;
            margin-left: auto;
            margin-right: auto;
        }
        .event {
            color: green;
            margin-top: 5px;
        }
    </style>
    <script>
        $(function() {
            $( "#datepickerF" ).datepicker({
                      showOn : "button",
                 buttonImage : "calendar.gif",
             buttonImageOnly : true
            });

            $( "#datepickerT" ).datepicker({
                      showOn : "button",
                 buttonImage : "calendar.gif",
             buttonImageOnly : true
            });

            $('#getdays').click(function() {
                var start = $('#datepickerF').datepicker('getDate');
                var end   = $('#datepickerT').datepicker('getDate');
                var days   = (end - start)/1000/60/60/24;
                document.getElementById("daysBetween").innerText=days;
            });

            $('input[type=radio]').change(function() {
                $('#sitehtn').hide()
                $(this).parent().next().show()
            });

            function displayResult(browser) {
                document.getElementById("result").value=browser
            }
        });
    </script>
</head>
<body>
    <div class="container">
        <div class="eventDateDiv">
            <div class="event">
                EVENT DATE
            </div>
            <p>FROM: <input type="text" id="datepickerF" /></p>
            <p>To: <input type="text" id="datepickerT" /></p>
            <button id="getdays">NO.OF DAYS </button>
            <p id="daysBetween"> </p>
        </div> 
        <div class="eventShowDiv">
            <div class="event">
                EVENT SHOW TIME
            </div>
            <p>TYPE OF SHOW: </p>
            <label>
                <input type="radio" name="sitewebGroup" value="Courtier" id="courtierRadio" />
                Unique
            </label>
            <input type="text" name="site" id="sitehtn" />
            <br />
            <label>
                <input type="radio" name="sitewebGroup" value="Agence" id="agenceRadio" />
                Varied
            </label>
            <input type="text" name="textfield3" id="sitehtn" />
        </div> 
    </div> 
</body>
</html>

我的实际预期输出是。

  1. 当我点击Unique radioButton时,会出现一个文本框并自动Next 单选按钮(各种)将隐藏

  2. 文本框包括..里面的四个文本字段..两个字段用于FROM和 到日期选择器和内容占位符,以及最后一个按钮添加相同的4 字段到同一文本框中的下一行

  3. 由于我是这个领域的新手,我需要你的支持和有价值的评论来解决这个问题。

2 个答案:

答案 0 :(得分:1)

这可能适用于日期选择器。您必须添加内容持有者和文本框。

    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
        <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
        <style>
            #sitehtn {
                display: none
            }

            .container {
                width: 100%;
                height: 600px;
                background-color: rgb(179, 174, 174);
            }
            #datepickerT {
                margin-left: 2em;
            }
            .eventDateDiv {
                height: 150px;
                width: 400px;
                margin-left: 0;
                margin-right: auto;
            }
            #daysBetween {
                margin-top: -1.4em;
                margin-left: 30%;
            }
            .eventShowDiv {
                height: 250px;
                width: 30%;
                margin-left: auto;
                margin-right: auto;
            }
            .event {
                color: green;
                margin-top: 5px;
            }
        </style>
        <script>
        function loading() {
                $( ".datepickerF" ).datepicker({
                          showOn : "button",
                     buttonImage : "calendar.gif",
                 buttonImageOnly : true
                });

                $( ".datepickerT" ).datepicker({
                          showOn : "button",
                     buttonImage : "calendar.gif",
                 buttonImageOnly : true
                });

                $('.getdays').click(function() {
                    var start = $(this).prev().prev().find('input').datepicker('getDate');
                    var end   = $(this).prev().find('input').datepicker('getDate');
                    var days   = (end - start)/1000/60/60/24;
                    $(this).next().text(days);
                });

                $('input[id=courtierRadio]').change(function() {
                    $('#hideRadio').html("");
                    $('#hideRadio').append(getAppleInfo());
                });
                function displayResult(browser) {
                    document.getElementById("result").value=browser
                }
            };
            window.onload = loading;

        // anti-pattern! keep reading...
        function getAppleInfo() {
            var eventDateDiv ="";
            eventDateDiv = $("<div></div>").addClass("eventDateDiv");
            eventDateDiv.append($("<p></p>").text("FROM: ").append($("<input>").attr("class", "datepickerF").attr("type", "text")));
            eventDateDiv.append($("<p></p>").text("TO: ").append($("<input>").attr("class", "datepickerT").attr("type", "text")));
            eventDateDiv.append($("<button></button>").text("NO.OF DAYS ").attr("class", "getdays"));
            eventDateDiv.append($("<p></p>").attr("class", "daysBetween"));
            eventDateDiv.append($("<a>").text("Add Another").attr("href", "#").attr("onclick", "belowDiv(this)"));
            return eventDateDiv;

        }
        function belowDiv(self){
            $('#hideRadio').append(getAppleInfo());
            loading();
        }
        </script>
    </head>
    <body>
        <div class="container">
            <div class="eventDateDiv" title="numb">
                <div class="event">
                    EVENT DATE
                </div>
                <p>FROM: <input type="text" class="datepickerF" /></p>
                <p>To: <input type="text" class="datepickerT" /></p>
                <button class="getdays">NO.OF DAYS </button>
                <p class="daysBetween"> </p>
            </div> 
            <div class="eventShowDiv" title="dumb">
                <div class="event">
                    EVENT SHOW TIME
                </div>
                <p>TYPE OF SHOW: </p>
                <label>
                    <input type="radio" name="sitewebGroup" value="Courtier" id="courtierRadio" />
                    Unique
                </label>
                <input type="text" name="site"  />
                <br />
                <div id="hideRadio">
                <label>
                    <input type="radio" name="sitewebGroup" value="Agence" id="agenceRadio" />
                    Varied
                </label>
                <input type="text" name="textfield3" />
                </div>
            </div> 
        </div> 
    </body>
    </html>

答案 1 :(得分:0)

对于你的#1问题,试试这个。

$('#courtierRadio').on('change', function () {
   $('#sitehtn').show();
   $('#agenceRadio').hide();
});