html - JavaScript, передающий ввод текста в обработчик onclick




(4)

Допустим, у меня есть форма, как показано ниже. Как передать значение в текстовом поле с именем «configname» обработчику функции onclick?

<form id="loadconfigform">
        Config Name: <input type="text" name="configname" />
        <input type="button" value="Submit" onclick="onLoadConfigPress(configname)" />
    </form>

Answers

<form id="loadconfigform">
   Config Name: <input type="text" id="configname" name="configname" />
   <input type="button" value="Submit"
     onclick="onLoadConfigPress(document.getElementById('configname').value);" />
</form>

<form id="loadconfigform">
        Config Name: <input type="text" name="configname" />
        <input type="button" value="Submit" onclick="onLoadConfigPress(document.getElementsByName('configname')[0].value)" />
    </form>

Просто назовите это, используя его имя. Я бы порекомендовал использовать ID, хотя.

Это не будет работать, если у вас есть другие элементы с таким же именем, поэтому используйте ID, как предложили другие ответы.


Дайте id для поля ввода:

<input type="text" id="configname" name="configname" />

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

<input type="button" value="Submit" 
  onclick="onLoadConfigPress(document.getElementById('configname').value)" />

Или, если у вас есть только одна форма на этой странице, вы также можете использовать массив forms :

<input type="button" value="Submit" 
  onclick="onLoadConfigPress(document.forms[0].configname.value)" />

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

var my_array = [1,2,3,4,5,6];
delete my_array[4];
console.log(my_array.filter(function(a){return typeof a !== 'undefined';}));

Должны отображаться [1, 2, 3, 4, 6]





javascript html onclick