如果这已经在 StackOverflow 的“某处”,请原谅我,但我不是 100% 确切地知道它会属于什么......
我正在尝试从 WebService 检索信息,将其存储在一个数组中,然后为每个 <select>
在我的 ASP.Net Datalist 中,用数组填充它并将绑定(bind)附加到 OnChange 事件。
换句话说,我有一个包含“Yes, No, Maybe”的数组
我有一个包含十个项目的 ASP.Net Datalist,因此我有 10 <Select>
每个选项都有“是、否、可能”作为可选项目。
当用户更改其中一个时 <Select>
s,一个事件被触发让我写回数据库。
我知道我可以使用 [ID=^ 但不知道如何:
a) 获取页面以填充 <Select>
因为它是用数组创建的
b) 根据 <Select>
分配一个 Change 函数so I can write back(回写我可以轻松完成,它只是绑定(bind)事件)。
对此有什么想法吗?
最佳答案
我已经构建了一个简单的示例来演示您想要完成的任务。我没有用于构建示例的 ASP.Net 服务器,因此我使用 Yahoo 的 YQL 来模拟您将从服务器获取的远程数据源。
示例步骤:
- 查询数据源以获取选定问题的数组
- 构建选择的 HTML
- 将 HTML 附加到页面
- 将更改事件监听器附加到选择
- 在选择值更改时提交值
示例 jQuery:
// get list of questions
$.ajax({
url: url,
dataType: "jsonp",
success: function(data) {
// build string of HTML of selects to append to page
var selectHtml = "";
$(data.query.results.p).each(function(index, element) {
selectHtml += '<select class="auto" name="question'+index+'"><option value="Yes">Yes</option><option value="No">No</option><option value="Maybe">Maybe</option></select> '+element+'<br/>';
});
// append HTML to page
$(document.body).append(selectHtml);
// bind change event to submit data
$("select.auto").change(function() {
var name = $(this).attr("name");
var val = $(this).val();
// replace the following with real submit code
$(document.body).append("<p>Submitting "+name+" with value of "+val+"</p>");
});
}
});
示例加载:
示例选择值已更改:
关于javascript - 填充 JScript 数组以便在 SELECT 上重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378637/