2012-03-27 9 views
0

Ich möchte also einen Button1 anklicken, wenn der Submit-Button geklickt wurde.Der Wert der Eigenschaft 'click' kann nicht abgerufen werden: Objekt ist null oder undefined

Hier ist der relevante Code:

<input id="Submit1" type="submit" value="Search" onclick="javascript:check_user()" /> 
<script type="text/javascript"> 
      function check_user() { 
       document.getElementById('<%=Button1.ClientID%>').click(); 
      } 
</script> 
<asp:Button id="Button1" runat="server" Visible="false" OnClick="Button1_Click"/> 

Und hier ist der Fehler, den ich bekommen:

Microsoft JScript runtime error: Unable to get value of the property 'click': object is null or undefined

Hat jemand irgendwelche Ideen, was das Problem sein könnte? Ich habe mir die Haare ausgerissen und versucht, es herauszufinden.

+0

Warum müssen Sie auf der Clientseite auf zwei Schaltflächen klicken? Warum nicht einfach den entsprechenden Code auf der Serverseite ausführen? Sendet das Formular an einen Drittanbieter-Standort und Sie versuchen, auch Code auf Ihrem Server auszuführen? – mellamokb

+0

Wenn Sie mir sagen können, wie ich mit einem Klick auf eine C# -Methode gehen kann, wäre ich dankbar (es scheint nie die Methode zu finden, wenn ich es versuche) - sonst wäre das der einzige Weg, an den ich denken könnte. –

+0

Siehe meine Antwort. – mellamokb

Antwort

1

mit Kannst du nicht tust es nur mit einem einzigen Tastendruck?

<asp:Button id="Button1" runat="server" Text="Search" OnClick="Button1_Click"/> 

Server-Side-Code:

protected void Button1_Click(object sender, EventArgs e) { 
    // processing code here 
} 
+0

Ich benutze ein Textfeld und Eingabe, um meine GridView zu filtern, so dass ich es auf Input onclick passieren muss. Der Button war mein Weg herum, um die C# -Methode aufrufen zu lassen. –

+0

Muss * ein * Eingang sein? Was ist los mit 'asp: Button'? Es wird im Wesentlichen genau dasselbe tun. – mellamokb

+0

Ein sehr guter Punkt. xD Ich nehme an, das klappt auch. –

1

, wenn Sie nicht auf Java-Script beschränkt sind, können Sie versuchen, den Abzug von jquery wie diese

<script type="text/javascript"> 
      function check_user() { 
      $("#<%=Button1.ClientID%>").trigger('click'); 
     //or 

$("#<%=Button1.ClientID%>").click(); 

      } 
</script> 
+0

Leider scheint es jQuery nicht zu erkennen. Ist es einfach einzurichten? –

+0

Ja, einfach hinzufügen. Es ist sogar von Microsofts CDN verfügbar. – ThiefMaster

+0

Sweet - es ist nicht kaputt gegangen, aber es hat nicht am Ende die OnClick-Methode der Schaltfläche aufgerufen ... –

0

Wie Sie die Schaltfläche unsichtbar gemacht, asp.net wird die Tastensteuerung in html nicht machen. (Sie können die HTML-Quelle überprüfen). Sie können einen Stil erstellen und auf die asp.net-Schaltfläche anwenden, sobald er auf der Clientseite gerendert wurde, um ihn unsichtbar zu machen.

.MyHiddenButtonStyle{display:none;}// add this in the header in styles 

<input id="Submit1" type="button" name="search" value="Search" onclick="javascript:check_user()" /> 
<asp:Button id="Button1" runat="server" CssClass="MyHiddenButtonStyle" OnClick="Button1_Click"/> 

function check_user() { 
     document.getElementById('<%=Button1.ClientID%>').click(); 
    } 

Eine weitere Sache, die ich den Absenden Button als normale Taste gemacht habe. Wie auch immer, du machst ein Postback Event mit Javascript.

Verwandte Themen