0

ページの読み込み時にこれらのイベントリスナーを確実に追加できないようです。最初から機能するリスナーもあれば、数回クリックするだけで機能するリスナーもあります。何が間違っている可能性がありますか? 問題は、ネイティブ JS と jQuery を混在させていることでしょうか?

<script>
$(document).ready(function() {

function resetValidation() {
  jQuery('#contact-form').validate().resetForm();
};

function resetFormFields() {
  document.getElementById('contact-form').reset();
};

function removeValidationClasses() {
  jQuery('.control-group').removeClass('success').removeClass('error');
};

function changeHeaderToAdd() {
  document.getElementById('contactModalLabel').innerText = 'Add Contact';
};

function changeHeaderToUpdate() {
  document.getElementById('contactModalLabel').innerText = 'Update Contact';
};

function clearContactId() {
  document.getElementById('contactId').value = '';
};

  var ab = document.getElementById('addContactBtn');
  if (ab.addEventListener) {
    ab.addEventListener('click', resetValidation, false);
    ab.addEventListener('click', resetFormFields, false);
    ab.addEventListener('click', removeValidationClasses, false);
    ab.addEventListener('click', changeHeaderToAdd, false);
    ab.addEventListener('click', clearContactId, false);
  } else {
    ab.attachEvent('onclick', resetValidation);
    ab.attachEvent('onclick', resetFormFields);
    ab.attachEvent('onclick', removeValidationClasses);
    ab.attachEvent('onclick', changeHeaderToAdd);
    ab.attachEvent('onclick', clearContactId);
  };
  var ub = document.getElementById('updateContactBtn');
  if (ub.addEventListener) {
    ub.addEventListener('click', resetValidation, false);
    ub.addEventListener('click', resetFormFields, false);
    ub.addEventListener('click', removeValidationClasses, false);
    ub.addEventListener('click', changeHeaderToUpdate, false);
  } else {
    ub.attachEvent('onclick', resetValidation);
    ub.attachEvent('onclick', resetFormFields);
    ub.attachEvent('onclick', removeValidationClasses);
    ub.attachEvent('onclick', changeHeaderToUpdate);
  };
});
</script>
4

1 に答える 1

0

解決しました!

JSは大丈夫でした。ただし、#updateContactBtn動的に (ページ上の連絡先ごとに 1 つ) 作成されたため、一意でない ID が存在することが問題の原因でした。の最初のインスタンスのみが機能し#updateContactBtnました。

に変更#updateContactBtnしました.updateContactBtn

于 2013-05-06T22:08:33.423 に答える