Я создаю форму начальной загрузки на веб-сайте SharePoint, и по какой-то причине мои переключатели не определены там, где находятся остальные мои вещи.

Форма:

Debugger :

PM_CreditCard: «4444555511116666»

PM_Email: "W@gmail.com"

PM_LabelReceipts: "не определено"

PM_BillEstimates: «не определено»

SharePoint: определяется в списке SharePoint.

Код:

function getItem() {
  var item = {
    PM_Email: $("#PM_email-input").val(), // Email
    PM_LabelReceipts: $(":radio[name=labelreceipts]:checked").val(), // Label Receipts
    PM_BillEstimates: $(":radio[name=billestimates]:checked").val(), // Bill Estimates Choice
    PM_CreditCard: $("#PM_credit-card-input").val(), // Credit Card #
  };
  return item;
}

function AddListItem(resources) {
  var item = getItem();

  $pnp.setup({
    baseUrl: ".................."
  });

  $pnp.sp.web.lists.getByTitle("Intake").items.add({
    PM_Email: item.PM_Email,
    PM_LabelReceipts: item.PM_LabelReceipts, // Radio Buttons
    PM_BillEstimates: item.PM_BillEstimates, // Radio Buttons
    PM_CreditCard: item.PM_CreditCard,
  }).then(function(r) {
    $("#submit").hide();
    $("#cancel").hide();
    var newItem = r.data;
    window.location = 'Thank you page url...';
  });
}
<div class="form-group row" style="margin-top: 5px;">
  <label for="PM_label-receipts-input" class="col-lg-10" style="margin-top: 5px;">Label receipts as invoices</label>
  <div class="col-lg-8">
    <label class="radio-inline"><input type="radio" value="Yes" name="labelreceipts">Yes</label>
    <label class="radio-inline"><input type="radio" value="No" name="labelreceipts">No</label>
  </div>
  <label for="PM_bill-estimates-input" class="col-lg-10 col-form-label" style="margin-top: 5px;">Receive Bill Estimates (received 2 weeks before recurring changes)</label>
  <div class="col-lg-8">
    <label class="radio-inline"><input type="radio" value="Yes" name="billestimates">Yes</label>
    <label class="radio-inline"><input type="radio" value="No" name="billestimates">No</label>
  </div>
</div>
1
user9727963 13 Июн 2018 в 19:50

1 ответ

Лучший ответ

Вы устанавливаете глобальные переменные labelreceipts и billestimates , и DOM загружает значения переключателей равными нулю, поскольку в это время ничего не проверяется.

Вам необходимо установить значения глобальных переменных в событии щелчка по радио-кнопке . таким образом они всегда будут обновляться при нажатии переключателя.

Проверьте приведенный ниже код

$(":radio").click(function() {
    PM_LabelReceipts= $(":radio[name=labelreceipts]:checked");
    PM_BillEstimates= $(":radio[name=billestimates]:checked");
    console.log($(this).val() + " - " + $(this).is(":checked"));
});
-1
Sreeraj Sree 13 Июн 2018 в 17:13