Могу ли я изменить атрибут max входного тега с помощью функции? - PullRequest
0 голосов
/ 20 июня 2019

Я исхожу из этого вопроса: Ввод max равен переменной javascript , но это не совсем решило мою проблему. В настоящее время я работаю со службой Google HTLM, и мне нужна помощь в приведенном ниже случае ...

если у меня есть такая функция:

var myVar = Function() { var x=2; return (x+x); }

... а затем напишите, у меня есть такой тег ввода:

<input id... max=myVar>

... после установки атрибута max следующим образом:

.setAttribute("max", myVar)

Сможет ли он успешно изменить атрибут max?

Ответы [ 2 ]

1 голос
/ 24 июня 2019

В дополнение к принятому ответу выше:

Если ваш myVar указывает на функцию из Code.gs, вы обнаружите, что простое выполнение этого не будет работать:

var myVar = function() { google.script.run.withSuccessHandler(onSuccess).myFunction()}

Выше просто вернется undefined

Чтобы получить результирующее значение из myFunction() внутри вашего HTML-файла, вам нужно сделать что-то такое:

function onSuccess(a) {
  var myVar = a;
}

Итак, чтобы установить различные атрибуты входного тега с помощью пользовательских функций из Code.gs, вы можете написать это:

function onSuccess(a) {
    document.getElementById(*yourID*).setAttribute(*yourTargetAttribute*, a);
}

Надеюсь, это кому-нибудь поможет, потому что это определенно решило серьезную проблему для .me.

1 голос
/ 20 июня 2019

Да, вы можете сделать это, но вам нужно внести несколько улучшений в ваш код:

  • function () должна быть ниже, javascript чувствителен к регистру
  • Вы должны добавить () после myVar, чтобы вызвать его как функцию
  • Макс будет проверен при отправке формы

var myVar = function() { var x=2; return (x+x); }

document.querySelector("#myInput").setAttribute("max", myVar());
<form>
  <input type="number" id="myInput" max>
  <button>send</button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...