我可以使用'选择'像下面这样的标签有多个选项值?
<select name="data">
<option value="{'name':'foo','type':'bar'}">Option one</option>
<option value="{'name':'foo2','type':'bar'}">Option two</option>
</select>
如果是这样,那么如何使用javascript访问这些值?
答案 0 :(得分:2)
值始终为1,但是如果序列化JSON对象,就像您正在尝试的那样,在value
属性中,您可以稍后使用JSON.parse()
检索它,如下所示:
jQuery(document).ready(function($){
$('select').on('change',function(){
var val = JSON.parse( $(this).val() );
console.log(val);
});
});
警告:您的序列化对象不是有效的JSON format,您应该使用双引号而不是单引号。
答案 1 :(得分:0)
为select标记提供ID。然后,通过带有“.value”的javascript访问它
<script>
function getValue() {
var choice = document.getElementById('myTag').value;
console.log(choice);
}
</script>
<select name="data" id="myTag">
<option value="{'name':'foo','type':'bar'}">Option one</option>
<option value="{'name':'foo2','type':'bar'}">Option two</option>
</select>
<br>
<input type="button" value="Get Data" onClick="getValue()">
答案 2 :(得分:0)
<select name="data" id='dropdown'>
<!-- ensure you're using proper json formatting here.
*strings are enclosed with double quotes.* -->
<option value='{"name":"foo","type":"bar"}'>Option one</option>
<option value='{"name":"foo2","type":"bar"}'>Option two</option>
</select>
<script>
//you could use something like this in a
//callback when you're ready to read the values.
var userSelection = JSON.parse( document.getElementById('dropdown').value );
/*
* the JSON.parse call was important because the value will
* initially be returned as a string in JSON format; But we
* want an object instead, so we can access its values with
* dot syntax for ease of use, so we use that to convert it.
*/
var selectedName = userSelection.name;
var selectedType = userSelection.type;
</script>
答案 3 :(得分:0)
您始终可以使用非标准属性而不是value
,然后以与使用value
时类似的方式访问它们。例如,
<select name="data">
<option name="foo" type="bar">Option one</option>
<option name="foo2 type="bar">Option two</option>
</select>
我不确定你想要访问它们的方式或位置,正如你没有说的那样,但我会给出一个例子:
newData = $("[name='data']").filter(":selected").attr("name");
dataType = $("[name='data']").filter(":selected").attr("type");
当然,要符合标准,新属性应以data-
开头,name
表示form
元素中的特殊内容,但您可以获得要点。