多个按钮调用相同的功能并执行不同的方法

时间:2015-10-12 08:35:45

标签: javascript c# asp.net

我有两个按钮调用相同的函数,而btnUpdate必须执行此函数,而btnsave不需要执行此方法

<script type="text/javascript">
function Update_New() {
  if (document.getElementById("btnUpdate").value == 2) {
    var update_confrimation = confirm("Are you sure you want to Update?");
    if (update_confrimation == true) {
      return true;
    } else {
      return false;
    }
  }

按钮代码

 <asp:Button ID="btnSave" runat="server" Text="SAVE" OnClick="btnSave_Click" OnClientClick="return Update_New()" value="1" />
<asp:Button ID="btnUpdate" runat="server" Text="UPDATE" OnClick="btnUpdate_Click" OnClientClick="return Update_New() " value="2" /
  

当我点击更新时,没有采取任何措施   我得到的问题是在javascript中没有定义VALUE(@ document.getElementById(&#34; btnUpdate&#34;)。value)

4 个答案:

答案 0 :(得分:0)

您无法使用asp直接在javascript中访问document.getElementById()控件,您可以参考此blog以使其成为可能

将控件的ClientIDMode属性设置为以下值之一:

  1. 自动识别
  2. 静态
  3. 可预测的
  4. 继承
  5. 例如:

    <script type="text/javascript">
      var seasonalSports = new Array("None selected",
                                     "Tennis",
                                     "Volleyball",
                                     "Baseball",
                                     "Skiing");
    
      function DisplaySport(x) {
          document.getElementById("SelectedSport").innerHTML
          = seasonalSports[x];
      }    
    </script>
    
    <asp:DropDownList ID="DropDownList1" runat="server" 
                      onchange="DisplaySport(this.selectedIndex);">
      <asp:ListItem Value="Select a season"></asp:ListItem>
      <asp:ListItem Value="Spring"></asp:ListItem>
      <asp:ListItem Value="Summer"></asp:ListItem>
      <asp:ListItem Value="Autumn"></asp:ListItem>
      <asp:ListItem Value="Winter"></asp:ListItem>
    </asp:DropDownList>
    <br />
    <asp:Label ID="SelectedSport" runat="server" ClientIDMode="Static">
    </asp:Label>
    

答案 1 :(得分:0)

您可以在调用该函数时将参数传递给函数,如下所示:

<强> HTML:

<asp:Button ID="btnSave" runat="server" Text="SAVE" OnClick="btnSave_Click" OnClientClick="return Update_New(true)" value="1" />
<asp:Button ID="btnUpdate" runat="server" Text="UPDATE" OnClick="btnUpdate_Click" OnClientClick="return Update_New(false) " value="2" />

<强> JavaScript的:

<script type="text/javascript">
    function Update_New(isnew) {
        if (!isnew) {
            var update_confrimation = confirm("Are you sure you want to Update?");
            if (update_confrimation == true) {
                return true;
            }
            else {
                return false;
            }
        }
    }
</script>

注意:如果您想访问服务器控件,可以按照以下说明访问它:

document.getElementById('<%=btnUpdate.ClientID%>').value;    

答案 2 :(得分:0)

ClientIDMode的{​​{1}}属性设置为静态

使用btnUpdate

答案 3 :(得分:0)

&lt; p&gt;即使您已经接受了答案并且上述所有答案都正常运行,但我添加此内容是为了让您了解自己所犯的错误。根据您的共享标记,如下所示: - &lt; / p&gt; &lt; pre&gt;&lt; code&gt;&lt; asp:Button ID =&#34; btnSave&#34; RUNAT =&#34;服务器&#34;文本=&#34; SAVE&#34;的OnClick =&#34; btnSave_Click&#34; OnClientClick =&#34;返回Update_New()&#34;值=&#34; 1&#34; /&GT; &lt; asp:Button ID =&#34; btnUpdate&#34; RUNAT =&#34;服务器&#34;文本=&#34; UPDATE&#34;的OnClick =&#34; btnUpdate_Click&#34; OnClientClick =&#34;返回Update_New()&#34;值=&#34; 2&#34; / &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;您正在使用名为&lt; code&gt; value&lt; / code&gt;的属性在这里Asp.Net服务器控件没有认识到这个&lt; strong&gt; MSDN&lt; / strong&gt; link&lt; a href =&#34; https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button_properties(v = vs.110).aspx&#34; rel =&#34; nofollow&#34;&gt;按钮属性&lt; / a&gt;即使您将其指定为自定义属性,但仍然无法呈现,因为按钮&lt; code&gt; Text&lt; / code&gt;当呈现为HTML时,属性变为&lt; code&gt; value&lt; / code&gt;所以有冲突。在您的情况下,它将是&lt; strong&gt;保存/更新&lt; / strong&gt;而不是&lt; strong&gt; 1/2&lt; / strong&gt;分别。 &LT; / p为H. &lt; p&gt;更好的方法是使用&lt; code&gt;数据属性&lt; / code&gt;您可以在哪里保存一些数据值供客户使用。 &LT; / p为H. &LT p为H.;&LT;强&GT; HTML&LT; /强&GT;&LT; / p为H. &lt; pre&gt;&lt; code&gt;&lt; asp:Button ID =&#34; btnSave&#34; RUNAT =&#34;服务器&#34;文本=&#34; SAVE&#34;的OnClick =&#34; btnSave_Click&#34; OnClientClick =&#34;返回Update_New()&#34;数据-ATTR =&#34; 1&#34; /&GT; &lt; asp:Button ID =&#34; btnUpdate&#34; RUNAT =&#34;服务器&#34;文本=&#34; UPDATE&#34;的OnClick =&#34; btnUpdate_Click&#34; OnClientClick =&#34;返回Update_New()&#34;数据-ATTR =&#34; 2&#34; /&GT; &LT; /代码&GT;&LT; /预&GT; &LT p为H.;&LT;强&GT;使用Javascript&LT; /强&GT;&LT; / p为H. &lt; pre&gt;&lt; code&gt;&lt; script type =&#34; text / javascript&#34;&gt;     function Update_New(obj){         if(obj!= undefined){             if(obj.dataset.attr == 2){                 var update_confrimation = confirm(&#34;您确定要更新吗?&#34;);                 if(update_confrimation == true){                     返回true;                 }                 其他{                     返回false;                 }             }         }     } &LT; /脚本&GT; &LT; /代码&GT;&LT; /预&GT;