Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对话框中的按钮以及如何在表单提交中获取相应的按钮值_Javascript_Asp.net Mvc - Fatal编程技术网

Javascript 对话框中的按钮以及如何在表单提交中获取相应的按钮值

Javascript 对话框中的按钮以及如何在表单提交中获取相应的按钮值,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有一个有形状的剃须刀视图。表单中有一个名为upload的按钮。“上载”按钮将发送到一个工作正常的操作方法 我想添加一个模式框确认,当他们点击上传按钮时会出现,现在在模式框中我想有两个按钮。一个会说“正常解析”,另一个会说“缓冲区解析”。一旦他们按下对话框中的任何一个按钮,表单就会提交到action方法,在action方法中,我想看看他们按下了哪个对话框按钮,或者是“正常解析”或者“缓冲区解析” 这是我到目前为止为对话框所做的,我只需要看看控制器如何获得按下按钮的值。谢谢大家 function

我有一个有形状的剃须刀视图。表单中有一个名为upload的按钮。“上载”按钮将发送到一个工作正常的操作方法

我想添加一个模式框确认,当他们点击上传按钮时会出现,现在在模式框中我想有两个按钮。一个会说“正常解析”,另一个会说“缓冲区解析”。一旦他们按下对话框中的任何一个按钮,表单就会提交到action方法,在action方法中,我想看看他们按下了哪个对话框按钮,或者是“正常解析”或者“缓冲区解析”

这是我到目前为止为对话框所做的,我只需要看看控制器如何获得按下按钮的值。谢谢大家

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分钟前添加的这些行试试。