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应该是唯一的,但两个输入都具有IDa\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>