Javascript 如何根据按钮点击情况弹出消息框?

Javascript 如何根据按钮点击情况弹出消息框?,javascript,Javascript,有一个表单包含两个按钮。然后我假设当我点击不同的按钮时,会弹出一个相关的消息框。单击按钮后,将触发一个称为“批准”的进一步操作 但是,在当前情况下,警报框仅显示一种状态。我知道当前状态正在获取相同的ID,这是一个错误的操作。但我现在不知道解决办法。有人能帮我吗 我查看了这个ref:,但不能完全理解解决方案提供的概念 <script type="text/javascript" language="javascript"> function ConfirmOnDelete() {

有一个表单包含两个按钮。然后我假设当我点击不同的按钮时,会弹出一个相关的消息框。单击按钮后,将触发一个称为“批准”的进一步操作


但是,在当前情况下,警报框仅显示一种状态。我知道当前状态正在获取相同的ID,这是一个错误的操作。但我现在不知道解决办法。有人能帮我吗

我查看了这个ref:,但不能完全理解解决方案提供的概念

<script type="text/javascript" language="javascript"> 

function ConfirmOnDelete() {

    var a = document.getElementById('a_action').value; //I want to change this
    if (a == "Approve")
    {
        if (confirm("Are you sure to approve?") == true)
            return true;
        else
            return false;
    }
    else
    {
        if (confirm("Are you sure to delete?") == true)
            return true;
        else
            return false;
    }
}
</script>
<form id="Batch" action="Approval" method="post" onsubmit="return ConfirmOnDelete();">      
        @<text>               


            @If ViewBag.unapprovedCount > 0 Then
                @<div style="float: left;">
                    <br />                       
                    <input type="hidden" name="batch_action" value="Delete" />
                    <input type="hidden" id="a_action" name="additional_action" value="Delete" />
                    <input type="submit" id="submit4" name="submit" class="button" value="Delete" style="width:100px;">
                </div>
            End If


            @If ViewBag.unapprovedCount > 0 Then                
                @<div style="float: right;">
                    <br />                       
                    <input type="hidden" name="batch_action" value="Approve" />
                    <input type="hidden" id="a_action2" name="additional_action" value="Approve" />
                    <input type="submit" id="submit3" name="submit" class="button" value="@ViewBag.batch_action" style="width:100px;">
                </div>
            End If

        </text>        
</form>

函数ConfirmOnDelete(){
var a=document.getElementById('a_action').value;//我想更改此值
如果(a=“批准”)
{
if(确认(“您确定要批准吗?”)==true)
返回true;
其他的
返回false;
}
其他的
{
if(确认(“您确定要删除吗?”)==true)
返回true;
其他的
返回false;
}
}
@               
@如果ViewBag.unapprovedCount>0,则
@

如果结束 @如果ViewBag.unapprovedCount>0,则 @
如果结束
注意在代码中添加了
{
}
。这是javascript if语句的正确语法

更新

您想调用
ConfirmOnDelete()
,具体取决于提交发件人时使用的按钮是“批准”还是“删除”。请原谅我使用jquery

$(“#批处理”)。在(“提交”,函数(){
//元素是否具有焦点:
var hasApproveFocus=$(“输入[id='submit3']”)是(':focus');
var hasDeleteFocus=$(“输入[id='submit4']”)是(':focus');
//检查“提交”按钮中的哪个按钮具有焦点,以确定单击“提交”时哪个按钮处于焦点
if(hasApproveFocus==true){
if(确认(“您确定要批准吗?”)==true){
返回true;
}否则{
返回false;
}
}else if(hasDeleteFocus==true){
if(确认(“您确定要删除吗?”)==true){
返回true;
}否则{
返回false;
}
}
});



您只获得一种状态的原因是
var a=document.getElementById('a_action')。值//通过按钮点击获取
根据ID检索值。ID应该是唯一的,但两个输入都具有ID
a\u action
。因此
getElementById
只返回第一个值,在本例中为
Delete

你能做的是以下几点

您可以绑定按钮并将操作作为参数传递,而不是在表单上绑定'ConfirmOnDelete'

在你的
#a_action
元素上看到这个小提琴,你可以添加一个
数据-*
属性并做一些魔术

并检查该值是否等于某个值,就像在您的示例中一样

if (a == "Approve") {
    //This would be true in this example, as data-value == "Approve"
}

这就是你想要的吗?

这就是我实现的解决方案

<script type="text/javascript">
function question_submit(input) {

    if (input == 1)
    {
        if (confirm('Are you sure you want to delete?')) {
            document.getElementById("action").value = "Delete";

            $('#Batch').submit();
        }
        else {
            alert('You have not submitted this form');
        }
    }
    else {
        if (confirm('Are you sure you want to approve?')) {
            document.getElementById("action").value = "Approve";
            $('#Batch').submit();
        }
        else {
            alert('You have not submitted this form');
        }
    }
}
</script>

<form id="Batch" name="myform" action="BatchApproval" method="post" >
    <input id="action" type="hidden" name="batch_action" /> 
    <div style="float: left;">
    <br />                      
    <input type="button" id="submit4" name="submit4" class="button" value="Delete" style="width:100px;" onclick="question_submit(1)">
                </div>

   <div style="float: right;">
   <br />                                  
   <input type="button" id="submit3" name="submit3" class="button" value="Approve" style="width:100px;" onclick="question_submit(2)">
   </div>

</form>

功能问题提交(输入){
如果(输入=1)
{
if(确认('您确定要删除吗?')){
document.getElementById(“操作”).value=“删除”;
$(“#批”).submit();
}
否则{
警报(“您尚未提交此表格”);
}
}
否则{
如果(确认('您确定要批准吗?')){
document.getElementById(“操作”).value=“批准”;
$(“#批”).submit();
}
否则{
警报(“您尚未提交此表格”);
}
}
}



我知道当前状态的ID相同,这是一个错误的操作。但我现在不知道解决办法。我检查了第一把小提琴,但它不起作用。提前谢谢。让我试试第二个。第二个也不起作用,这引发了我进一步行动的异常。谢谢。我终于找到了解决办法。请选择“是”,因为
数据值
属性设置为“批准”。我不知道你的代码应该如何工作,因为你从来没有包括哪种语言<代码>@如果ViewBag.unapprovedCount>0,则
不是Javascript。@t据我所知,页面上只查看一个按钮,对吗?您不能引用多个ID,因为它将始终使用第一个ID。如果有两个按钮,请始终使用类而不是ID,因为类是一对多的,ID是一,所以您只能有一个ID。@t如果您不能向我解释它应该如何工作,那么很遗憾,我无法帮助您。如果单击第一个按钮会发生什么,如果单击第二个按钮会发生什么?我想两个按钮可能有自己的事件。根据您的解决方案,添加数据值属性不会更改按钮事件。@t请重新阅读我的注释。我不知道你的程序应该做什么,所以我无法进一步帮助你。现在很模糊,谢谢。我终于找到了解决办法。请检查。我应该在哪里检查,这个解决方案来自我的???。如果是,请接受并投票。好的,我已经看到了。。。美好的那么,您是如何找到解决方案的
if (a == "Approve") {
    //This would be true in this example, as data-value == "Approve"
}
<script type="text/javascript">
function question_submit(input) {

    if (input == 1)
    {
        if (confirm('Are you sure you want to delete?')) {
            document.getElementById("action").value = "Delete";

            $('#Batch').submit();
        }
        else {
            alert('You have not submitted this form');
        }
    }
    else {
        if (confirm('Are you sure you want to approve?')) {
            document.getElementById("action").value = "Approve";
            $('#Batch').submit();
        }
        else {
            alert('You have not submitted this form');
        }
    }
}
</script>

<form id="Batch" name="myform" action="BatchApproval" method="post" >
    <input id="action" type="hidden" name="batch_action" /> 
    <div style="float: left;">
    <br />                      
    <input type="button" id="submit4" name="submit4" class="button" value="Delete" style="width:100px;" onclick="question_submit(1)">
                </div>

   <div style="float: right;">
   <br />                                  
   <input type="button" id="submit3" name="submit3" class="button" value="Approve" style="width:100px;" onclick="question_submit(2)">
   </div>

</form>