简体   繁体   English

如何使用JavaScript在不同的文本字段中显示多个输入值

[英]How to show multiple input values in different text fields using javascript

I have multiple input fields as radio buttons where the user can select a button and then the radio buttons disappear and the selected value will be shown in a new div 我有多个输入字段作为单选按钮,用户可以在其中选择一个按钮,然后单选按钮消失,所选值将显示在新的div中

I am successfully getting single value if selected and able to show,But how to get input from multiple forms and show it individually in separate div 如果选择并可以显示,我将成功获取单个值,但是如何从多种形式获取输入并分别在单独的div中显示

<div class="chat machine">
    <p class="chat-message" id="course-picker">
        Which course do you want to choose?
        <form method="post">
            <!--Radio Buttons for getting course input -->
            <label class="container">
                <input type="radio" name="co1"value="course 1">
                <span class="checkmark">Course 1</span>
            </label>
            <label class="container">
                <input type="radio"  name="co2"value="course 2">
                <span class="checkmark">Course 2</span>
            </label>
            <label class="container">
                <input type="radio"  name="co3"value="course 3">
                <span class="checkmark">Course 3</span>
            </label>
            <label class="container">
                <input type="radio"  name="co4"value="course 4">
                <span class="checkmark">Course 4</span>
            </label>
        </form> 
    </p>
</div>
<div class="chat self" id="self-chat">
    <p class="chat-message"><span id="result"></span></p>
</div>

<script>
    jQuery(':radio').click(function () {
        $("#result").text(this.value);
        $("#course-picker").hide();
    });
</script>

<div class="chat machine">
    <p class="chat-message" id="preference">
        Which course do you want to choose?
        <form method="post">
            <!--Radio Buttons for getting course input -->
            <label class="container">
                <input type="radio" name="p1"value="prefer 1">
                <span class="checkmark">prefer 1</span>
            </label>
            <label class="container">
                <input type="radio"  name="p2"value="prefer 2">
                <span class="checkmark">prefer 2</span>
            </label>
        </form>
    </p>
</div>

<div class="chat self" id="self-chat">
    <p class="chat-message"><span id="result1"></span></p>
</div>

<script>
    jQuery(':radio').click(function () {
        $("#result1").text(this.value);
        $("#preference").hide();
    });
</script>

I thought about why we need multiple forms. 我考虑过为什么我们需要多种形式。 https://codepen.io/kaslab/pen/vwGZWm https://codepen.io/kaslab/pen/vwGZWm

I have added multiple P tags with class, question add radio naming 我在课程中添加了多个P标签 ,问题添加了广播名称

HTML : HTML:

<div class="chat machine">
    <div class="user-photo">
        <img src="img/user.png" />
    </div>
    <form method="post" id="course-picker">
        <p class="chat-message questionControl">Which course do you want to choose?
            <!--Radio Buttons for getting course input --><br />
            <label class="container">
                <input type="radio" name="course1" value="course 1" />
                <span class="checkmark">Course 1</span>
            </label>
            <label class="container">
                <input type="radio" name="course1" value="course 2" />
                <span class="checkmark">Course 2</span>
            </label>
            <label class="container">
                <input type="radio" name="course1" value="course 3" />
                <span class="checkmark">Course 3</span>
            </label>
            <label class="container">
                <input type="radio" name="course1" value="course 4" />
                <span class="checkmark">Course 4</span>
            </label>
        </p>
        <p class="chat-message questionControl">Which subject do you want to choose?
            <!--Radio Buttons for getting subject input --><br />
            <label class="container">
                <input type="radio" name="subject1" value="subject 1" />
                <span class="checkmark">Subject 1</span>
            </label>
            <label class="container">
                <input type="radio" name="subject1" value="subject 2" />
                <span class="checkmark">Subject 2</span>
            </label>
            <label class="container">
                <input type="radio" name="subject1" value="subject 3" />
                <span class="checkmark">Subject 3</span>
            </label>
            <label class="container">
                <input type="radio" name="subject1" value="subject 4" />
                <span class="checkmark">Subject 4</span>
            </label>
        </p>
    <button type="button" class="getResult">Result</button>
    </form>
</div>
<div class="chat self" id="self-chat">
    <div class="user-photo">
        <img src="img/self.png">
        </div>
        <p class="chat-message">
            <span id="result"></span>
        </p>
    </div>
</div>

SCRIPT : 脚本:

var $radio = $("input:radio");
var $result = $(".getResult");

$result.on('change, click', function(){
  getSelectedRadioValue();
  hideRadio();
});

function getSelectedRadioValue(){
  var $result = [];
  $(".questionControl").each(function() {
    var $ans = $(this).find('input:radio:checked').val();
    $result.push($ans);
  });
  $('.chat-message #result').html($result.join(', '));
}

function hideRadio(){
  $('input:radio').hide();
  // if you wanted to disable
  // $('input:radio').attr('disabled', true);
}

Please follow the link to preview. 请点击链接进行预览。

by doing: 通过做:

    jQuery(':radio').click(function () {
        $("#result").text(this.value);
        $("#course-picker").hide();
    });

then: 然后:

    jQuery(':radio').click(function () {
        $("#result1").text(this.value);
        $("#preference").hide();
    });

You were attaching 2 click event handlers to all radio buttons regardless of their form. 您将2 click事件处理程序附加到所有单选按钮,而不管它们的形式如何。

I've just reworked the markup, added a different id ( course-picker-form and preference-form ) to each form and changed the selectors ( '#course-picker-form input[type="radio"]' and '#preference-form input[type="radio"]' ) to attach the 2 separate click handlers to their intended radio buttons groups: 我刚刚修改了标记,在每个表单中添加了一个不同的ID( course-picker-formpreference-form ),并更改了选择器( '#course-picker-form input[type="radio"]''#preference-form input[type="radio"]' )将2个单独的点击处理程序附加到其预期的单选按钮组:

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="chat machine" id="course-picker"> <p class="chat-message"> Which course do you want to choose? </p> <form method="post" id="course-picker-form"> <!--Radio Buttons for getting course input --> <label class="container"> <input type="radio" name="co1"value="course 1" /> <span class="checkmark">Course 1</span> </label> <label class="container"> <input type="radio" name="co2"value="course 2" /> <span class="checkmark">Course 2</span> </label> <label class="container"> <input type="radio" name="co3"value="course 3" /> <span class="checkmark">Course 3</span> </label> <label class="container"> <input type="radio" name="co4"value="course 4" /> <span class="checkmark">Course 4</span> </label> </form> </div> <div class="chat self" id="self-chat"> <p class="chat-message"><span id="result"></span></p> </div> <script> jQuery('#course-picker-form input[type="radio"]').click(function () { $("#result").text(this.value); $("#course-picker").hide(); }); </script> <div class="chat machine" id="preference"> <p class="chat-message"> Which course do you want to choose? </p> <form method="post" id="preference-form"> <!--Radio Buttons for getting course input --> <label class="container"> <input type="radio" name="p1"value="prefer 1"> <span class="checkmark">prefer 1</span> </label> <label class="container"> <input type="radio" name="p2"value="prefer 2"> <span class="checkmark">prefer 2</span> </label> </form> </div> <div class="chat self" id="self-chat"> <p class="chat-message"><span id="result1"></span></p> </div> <script> jQuery('#preference-form input[type="radio"]').click(function () { $("#result1").text(this.value); $("#preference").hide(); }); </script> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM