我正在尝试从下面的表单中的data
获取options
的值,所以我可以在jQuery中使用它们,但我似乎没有成功。我想做的很简单,你会在下面的代码中看到。我怎么能这样做?
$('#selectForm').click(function(e) {
e.preventDefault();
var action = $(this).data('id');
var type = $(this).data('name');
console.log(action+' '+type);
});
// Jquery的
<form id="selecttest">
<label for="fruit">Please select at least two fruits</label><br>
<select id="fruit" name="fruit" size="5">
<option data-id="1" data-name="norman">Banana</option>
<option data-id="2" data-name="james">Apple</option>
<option data-id="3" data-name="lars">Peach</option>
<option data-id="4" data-name="john">Turtle</option>
</select>
<input type="submit" id="selectForm" value="Validate Selecttests">
</form>
答案 0 :(得分:15)
这是演示 - http://jsfiddle.net/tnVfV/
这是代码:
$('#selectForm').click(function (e) {
e.preventDefault();
var action = $('#fruit option:selected').attr('data-id');
var type = $('#fruit option:selected').attr('data-name');
console.log(action + ' ' + type);
});
data-id
和data-name
是选项的属性。您可以使用原生属性id
和name
...
好的,根据tymeJV评论,这里是使用data()
的代码:
$('#selectForm').click(function (e) {
e.preventDefault();
var action = $('#fruit option:selected').data('id');
var type = $('#fruit option:selected').data('name');
console.log(action + ' ' + type);
});
答案 1 :(得分:3)
这应该这样做:
var action = $("#fruit option:selected").attr('data-id');
var type = $("#fruit option:selected").attr('data-name');
答案 2 :(得分:2)
var id = $('#fruit').find(':selected').data('id');
var name = $('#fruit').find(':selected').data('name');
答案 3 :(得分:1)
答案 4 :(得分:0)
您可以像这样访问所选选项的属性data-name
:
$('#fruit option:selected').attr('data-name');
所以试试这个
$('#selectForm').click(function(e) {
// better add this part of code for cross-browser functionality:
var event = (window.event || e);
event.preventDefault();
var data-name = $('#fruit option:selected').attr('data-name');
});
答案 5 :(得分:0)
尝试在代码中执行以下操作
$('#selectForm').click(function(e) {
e.preventDefault();
var select = $("#fruit")[0].selectedIndex;
var id= $("#fruit option:eq("+select+")").data("id");
var type=$("#fruit option:eq("+select+")").data("name");
console.log(id +" "+ type)
});