Javascript 对话框中的按钮以及如何在表单提交中获取相应的按钮值
我有一个有形状的剃须刀视图。表单中有一个名为upload的按钮。“上载”按钮将发送到一个工作正常的操作方法 我想添加一个模式框确认,当他们点击上传按钮时会出现,现在在模式框中我想有两个按钮。一个会说“正常解析”,另一个会说“缓冲区解析”。一旦他们按下对话框中的任何一个按钮,表单就会提交到action方法,在action方法中,我想看看他们按下了哪个对话框按钮,或者是“正常解析”或者“缓冲区解析” 这是我到目前为止为对话框所做的,我只需要看看控制器如何获得按下按钮的值。谢谢大家Javascript 对话框中的按钮以及如何在表单提交中获取相应的按钮值,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有一个有形状的剃须刀视图。表单中有一个名为upload的按钮。“上载”按钮将发送到一个工作正常的操作方法 我想添加一个模式框确认,当他们点击上传按钮时会出现,现在在模式框中我想有两个按钮。一个会说“正常解析”,另一个会说“缓冲区解析”。一旦他们按下对话框中的任何一个按钮,表单就会提交到action方法,在action方法中,我想看看他们按下了哪个对话框按钮,或者是“正常解析”或者“缓冲区解析” 这是我到目前为止为对话框所做的,我只需要看看控制器如何获得按下按钮的值。谢谢大家 function
function getParsingRoute(){
var buttonPressed;
.dialog({
modal: true,
width: 600,
title: 'Parsing Values Confirmation',
buttons: {
"Normal Parsing": function () {
buttonPressed = "Normal";
},
"Buffer Parsing": function () {
buttonPressed = "Buffer
}
}
})
}
@using (Html.BeginForm("Create", "RunLogEntry", FormMethod.Post, new { id = "form", enctype = "multipart/form-data" }))
{
<button name="submit" class="art-button" type="submit" value="Upload" onclick="getParsingRoute()" style="width: 100px">Upload</button>
}
函数getParsingRoute(){
按下var按钮;
.对话({
莫代尔:是的,
宽度:600,
标题:“解析值确认”,
按钮:{
“正常解析”:函数(){
按钮按下=“正常”;
},
“缓冲区解析”:函数(){
buttonPressed=“缓冲区
}
}
})
}
@使用(Html.BeginForm(“Create”、“RunLogEntry”、FormMethod.Post、new{id=“form”、enctype=“multipart/formdata”}))
{
上传
}
尝试以下方法:
function getParsingRoute(){
var buttonPressed;
.dialog({
modal: true,
width: 600,
title: 'Parsing Values Confirmation',
buttons: {
"Normal Parsing": function () {
$.ajax({
url: "http://example.com",
type: "POST",
data: contactForm.serialize() + "&buttonPresed=Normal Parsing"
}).done(function (data) {
//done
})
},
"Buffer Parsing": function () {
$.ajax({
url: "http://example.com",
type: "POST",
data: contactForm.serialize() + "&buttonPresed=Buffer Parsing"
}).done(function (data) {
//done
})
}
}
})
}
此代码仅向您显示如何执行此操作。解决方案由@Barmar输入注释:
function getParsingRoute(e){
e.stopPropagation();
.dialog({
modal: true,
width: 600,
title: 'Parsing Values Confirmation',
buttons: {
"Normal Parsing": function () {
$("#hiddenInput").val("Normal Parsing");
},
"Buffer Parsing": function () {
$("#hiddenInput").val("Buffer Parsing");
}
}
})
$("#form").submit();
}
@using (Html.BeginForm("Create", "RunLogEntry", FormMethod.Post, new { id = "form", enctype = "multipart/form-data" }))
{
<input name="inputName" type="hidden" id="hiddenInput" value="" />
<button name="submit" class="art-button" type="submit" value="Upload" onclick="getParsingRoute()" style="width: 100px">Upload</button>
}
函数getParsingRoute(e){
e、 停止传播();
.对话({
莫代尔:是的,
宽度:600,
标题:“解析值确认”,
按钮:{
“正常解析”:函数(){
$(“#hiddenInput”).val(“正常解析”);
},
“缓冲区解析”:函数(){
$(“#hiddenInput”).val(“缓冲区解析”);
}
}
})
$(“#表格”).submit();
}
@使用(Html.BeginForm(“Create”、“RunLogEntry”、FormMethod.Post、new{id=“form”、enctype=“multipart/formdata”}))
{
上传
}
也许你应该用javascript调用action。这些action将是额外的send参数,它将被按钮按下
让按钮的点击处理程序填充表单中的隐藏字段。@jack它是MVC,上载按钮在部分视图中。我的首选是不使用任何AJAX调用this@woocash有alt吗除了对话框中的ajax帖子见WooCaSh的答案,我认为应该可以。嘿,控制器中的伙计,我怎么知道值是什么?我不确定,但可能是通过以下方式:var value=Request[“inputName”]
对不起,有一个问题,对话框正在显示,但它会自动关闭并提交表单。它不会暂停并让用户选择对话框中的按钮。我是否需要在dalog框中添加一个返回false?好的,所以我在提交时在表单中添加了一个事件以返回false,并且这次对话框不会显示。howev呃,当他们点击对话框中的一个按钮时,什么也没有发生,表单不会发布到控制器动作方法。现在就用我在2分钟前添加的这些行试试。