我有一个jQuery表单private void templateDocuments()
{
string path = @"\\directoryname\foldername";
try
{
DirectoryInfo dinfo = new DirectoryInfo(path);
FileInfo[] Files = dinfo.GetFiles("*.doc");
foreach (FileInfo file in Files)
{
listView2.Items.Add(file.Name);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
方法,我需要根据下面代码中注释的3个值POST
提交。
如何将这三个变量传递给PostData
形式的方法?他们遍历submit
函数,我不知道如何将其作为数组传递以及如何发布这些数据。
each
答案 0 :(得分:1)
你的例子过于复杂和混乱。你想要实现的目标实际上非常简单。你不必通过任何东西来获得你的价值观。您可以在按钮单击侦听器回调方法中执行相同的操作。
我首先要分开关注点。隔离AJAX调用和解绑方法:
function postTheData(postData) {
$.ajax({
type: "POST",
url: "/Home/Index",
data: JSON.stringify(postData),
success: function (data) {
alert("Success");
unbind();
},
error: function () {
alert("error");
}
});
}
function unbind() {
$("form").unbind('submit').submit();
}
然后,尝试意识到这些是监听器寄存器。您正在将操作附加到DOM事件。按下按钮或提交表单时,将调用这两个函数中的一个。您可以以相同的方式获取每个数据。提交表单不会为方法添加任何特殊参数。您仍然需要自己提取表单数据。
此外,从您的问题来看,.each
方法的目的并不清楚。如果没有好好看看你的标记,很难说出你想要的是什么。但是,足以说明,你会以相同的方式从输入中提取每个案例的值:
// this is called when the button is clicked
$('#button').click(function () {
var val1, val2, val3;
$('.selected').each(function () {
val1 = $(this).find(":selected").text(); //Post Data
val2 = $(this).find('input:text').val(); //Post Data
val3 = $(this).attr('value'); //PostData
});
postTheData({pd: val1, ta: val2, tb: val3});
});
// this is called when the form is submitted (by pressing enter inside an input, or pressing the "submit" button)
$("form").submit(function (e) {
var val1, val2, val3;
e.preventDefault();
//just get the values the same way
$('.selected').each(function () {
val1 = $(this).find(":selected").text(); //Post Data
val2 = $(this).find('input:text').val(); //Post Data
val3 = $(this).attr('value'); //PostData
});
postTheData({pd: val1, ta: val2, tb: val2});
});