Другие способы получения значения из формы, кроме val ()? - PullRequest
1 голос
/ 13 июля 2011

У меня есть скрипт jQuery, который получает «значение» из HTML-формы, но у меня также есть платежный клиент, который использует то же значение.

JQuery

$('.calc').change(function(){
var valone = $('#os0').val();
var valtwo = $('#os1').val();
var valthree = $('#os2').val();
var total = ((valone * 1) * (valtwo * 1) * (valthree * 1));

HTML

 <select style="width: 190px;" class="calc"
 name="os0" id="os0" type="text">
 <option value="5">250 </option>
 <option value="6">500 </option>
 <option value="7">1000 </option>
 <option value="8">2000 </option>
 <option value="9">5000 </option>
 </select>

Проблема в том, что эти значения должны быть разными, но в одной опции.

Итак ... Есть ли способ заставить jQuery извлекать другую переменную из формы, а не просто «значение», такое как метка, имя или идентификатор, для использования в уравнении jQuery?

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Итак ... Есть ли способ заставить jQuery извлекать другую переменную из формы, а не просто "значение", такое как метка, имя или идентификатор, для использования в уравнении jQuery?

Да.

Вероятно, лучший способ (если вы не возражаете, он не будет проверяться в типах документов, отличных от HTML5), это использовать атрибут data-whatever (префикс data- важен).

Затем вы можете получить к нему доступ с помощью attr('data-whatever') или с помощью data('data-whatever'), но имейте в виду, что последний использует магию, чтобы попытаться вернуть нужный вам тип.

jsFiddle .

0 голосов
/ 13 июля 2011

Если вы хотите получить доступ к тексту внутри выбранной опции (например, 250, 500), вам нужно получить свойство text опции:

$('.calc').change(function(){
  var valone    = Number($('#os0 option:selected').prop('text'));
  var valtwo    = Number($('#os1 option:selected').prop('text'));
  var valthree  = Number($('#os2 option:selected').prop('text'));
  var total = (valone * valtwo * valthree);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...