除了val()之外从表单中获取值的其他方法?

时间:2011-07-12 23:51:05

标签: jquery attributes

我有一个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方程中使用的“值”,例如标签,名称或ID?

2 个答案:

答案 0 :(得分:1)

  

那么......有没有办法让jQuery从表单中检索不同的变量,而不仅仅是在jQuery方程中使用的“值”,例如标签,名称或ID?

可能最好的方法(如果你不介意它不会在非HTML5文档类型中验证)是使用data-whatever attributedata-前缀很重要)。

然后,您可以使用attr('data-whatever')data('data-whatever')访问它,但请记住,后者会尝试返回您想要的类型。

jsFiddle

答案 1 :(得分:0)

如果您想访问所选选项内的文本(例如250,500),您需要检索该选项的text-property:

$('.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);
});