Как я могу получить текст метки из поля ввода в сериализации? - PullRequest
0 голосов
/ 26 января 2020

Я хочу сериализовать все входные данные из # form-unique, включая label.text. Как мне извлечь текст метки в этом случае?

У меня есть следующее HTML, которое является частью формы уникальной формы.

<div class="form-check form-check-inline">
      <input class="form-check-input" type="radio" name="moneyNeeded" id="moneyYes" value="1" required>
      <label class="form-check-label" for="moneyYes">Yes</label>
</div>
<div class="form-check form-check-inline">
      <input class="form-check-input" type="radio" name="moneyNeeded" id="moneyNo" value="0">
      <label class="form-check-label" for="moneyNo">No</label>
</div>

jQuery выглядит так:

var model = {};
    $.each($('#form-unique').serializeArray(), function(i, field) {
        model[field.name] = field.value;
});

Вывод, который я продолжаю получать, равен 1 или 0, но я хочу Да или Нет.

Ответы [ 2 ]

0 голосов
/ 26 января 2020

Вы можете достичь этого простым способом

  • Использовать next () до "Get the immediately following sibling of each element in the set of matched elements."
  • Использовать text () до "Get the combined text contents of each element in the set of matched elements"

$(".form-check-input").on("change", function(){
        var model = {};
        $(".form-check-input").each((_,field) => {
             var $field = $(field);
             model[$field.next().text()] = $field.val();
        });
        console.log(model);
        console.log("Checked: " + $(".form-check-input:checked").next().text());
 });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="moneyNeeded" id="moneyYes" value="1" required>
            <label class="form-check-label" for="moneyYes">Yes</label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="moneyNeeded" id="moneyNo" value="0">
            <label class="form-check-label" for="moneyNo">No</label>
        </div>
0 голосов
/ 26 января 2020

Я сделал изменения, необходимые для его работы, и получил это:

var model = [];

$('.form-check input').each(function(){
  model.push({
    name: $(this).parent().find('label').text(),
    value: $(this).val()
  })
})

результат:

[{
  name: "Yes",
  value: "1"
},{
  name: "No",
  value: "0"
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...