在jQuery中,有一个序列化表单元素的函数,例如我可以将它作为ajax请求提交。
假设我们有一个这样的表格:
<form id="form">
<select name="single">
<option>Single</option>
<option selected="selected">Single2</option>
</select>
<input type="checkbox" name="check" value="check1" id="ch1">
<input name="otherName" value="textValue" type="text">
</form>
如果我在jquery
的帮助下这样做var str = $( "form" ).serialize();
console.log(str);
结果将是
single=Single2&check=check1&otherName=textValue
在dart的FormElement中是否有这样的功能,或者我必须自己编写代码?感谢。
答案 0 :(得分:3)
我提出了我自己的简单解决方案,可能并不适用于所有情况(但对我来说这是工作)。程序是这样的:
代码可能如下所示:
FormElement form = querySelector('#my-form'); // To select the form
Map data = {};
// Form elements to extract {name: value} from
final formElementSelectors = "select, input";
form.querySelectorAll(formElementSelectors).forEach((SelectElement el) {
data[el.name] = el.value;
});
var parameters = "";
for (var key in data.keys) {
if (parameters.isNotEmpty) {
parameters += "&";
}
parameters += '$key=${data[key]}';
}
参数现在应包含指定表单中的所有{name:value}对。
答案 1 :(得分:1)
我还没有见过这样的东西。
在this example中,Seth Ladd使用Polymers模板将表单字段值分配给一个被序列化的类。