Как я могу заставить функцию html onchange работать при загрузке страницы - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть функция onChange, которая работает в форме бронирования, которую я создал, но при загрузке формы обновления, которую я создал, я не могу найти способ фильтрации, как если бы он был выбран, ниже приведен фрагмент используемого кода, которыйповторяется для каждого фильтруемого элемента;

<input name="CQty" id="CQty" value="<?php echo $noc; ?>" onChange="if (this.value=='1'){this.form['C1N'].style.visibility='visible'}"

Вот где я сейчас нахожусь с попыткой jquery (хотя она сокращена по сравнению с длиной конечного требования);

document.onload = function clientQty() {
var Qty = document.update.CQty;
  if (['#CQty'].value=='1'){
      $['#C1N'].style.visibility='visible'
      $['#C1Al'].style.visibility='visible'
      $['#C1Gen'].style.visibility='visible'
      $['#C1DOB'].style.visibility='visible'
      $['#C1Age'].style.visibility='visible'
      $['#C1Rel'].style.visibility='visible'
      $['#C1IDNo'].style.visibility='visible'
      $['#C1Photo'].style.visibility='visible'
      $['#C1PoC'].style.visibility='visible'
      $['#C1PKB'].style.visibility='visible'
      $['#C1Res'].style.visibility='visible'
      $['#C2N'].style.visibility='hidden'
      $['#C2Al'].style.visibility='hidden'
      $['#C2Gen'].style.visibility='hidden'
      $['#C2DOB'].style.visibility='hidden'
      $['#C2Age'].style.visibility='hidden'
      $['#C2Rel'].style.visibility='hidden'
   }
else if (['#CQty'].value=='10'){
      $['#C1N'].style.visibility='visible'
      $['#C1Al'].style.visibility='visible'
      $['#C1Gen'].style.visibility='visible'
      $['#C1DOB'].style.visibility='visible'
      $['#C1Age'].style.visibility='visible'
      $['#C1Rel'].style.visibility='visible'
      $['#C1IDNo'].style.visibility='visible'
      $['#C1Photo'].style.visibility='visible'
      $['#C1PoC'].style.visibility='visible'
      $['#C1PKB'].style.visibility='visible'
      $['#C1Res'].style.visibility='visible'
      $['#C2N'].style.visibility='visible'
      $['#C2Al'].style.visibility='visible'
      $['#C2Gen'].style.visibility='visible'
      $['#C2DOB'].style.visibility='visible'
      $['#C2Age'].style.visibility='visible'
      $['#C2Rel'].style.visibility='visible'
}
};

Любые идеи заслуживают самой высокой оценки, так как это единственное, на чем я застрял.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

У меня нет ваших PHP-скриптов, поэтому, чтобы проверить это, я изменил ваш HTML, поэтому значение по умолчанию 1 выглядит следующим образом:

<input name="CQty" id="CQty" value="1" onChange="if (this.value=='1'){this.form['C1N'].style.visibility='visible'}">

И ваш JavaScript к этому:

window.onload = clientQty;

function clientQty() {
  console.log($('#CQty').attr('value')) //1
  //OR
  console.log(document.getElementById('CQty').value) //1
  //change all of these selectors so they work like the ones in the console.log statement
};

Ваши селекторы не работают должным образом.Если вы используете селекторы jQuery (т. Е. $), вы не можете ссылаться на эти элементы так же, как вы ссылаетесь на обычные элементы DOM в JavaScript, как при написании .style.visibility = 'visible' - вы должны использовать функции jQuery, как яв $('#CQty').attr('value') выше.Обратное также верно - вы не можете использовать элементы JavaScript DOM в jQuery, не превратив их в объекты jQuery.

Чтобы попробовать это, я бы порекомендовал просмотреть консоль (Google, как это сделать в выбранном вами браузере) и убедиться, что у вас есть значение для этих операторов console.log при загрузке страницы.Если значение не определено, ваш оператор if никогда не будет истинным, потому что undefined не равен 1.

Последнее замечание - посмотрите на значение this в JavaScript.В строке onChange="if (this.value=='1'){this.form['C1N'].style.visibility='visible'}" вы говорите this.form, но this в этом контексте является вводом, и я предполагаю, что он не имеет свойства формы.

0 голосов
/ 21 ноября 2018
window.onload = function() {
  if (document.getElementById("number").value=='1'){
      this.form['C1N'].style.visibility='visible'
   }
};

попробуй.

...