2016-11-24 15 views
-2

Ich baue einige kleine MVC asp.net Projekt, um eine Funktion der OutBrain API zu überprüfen.Javascript onClick Funktion funktioniert nicht

Ich habe eine Eingabe Art von Text, die MarketerI ID erhalten und sollte seinen Namen (vom Server) zurückgeben. Aber wenn ich den Knopf drücke, passiert nichts, und ich habe wirklich keine Ahnung, warum und wer froh ist, etwas Hilfe zu bekommen!

Dank

Mein Code:

outBrain.js

Datei
$("#buttonB").on('click', function() { 
    getMarketer(); 
}); 


function getMarketer() { 
    $.ajax({ 
     url: "/home/GetOutBrainMarketers", 
     data: { id: $("marketerID").val() }, 
     success: function (result) { 
      var marketer = JSON.parse(result); 
      document.getElementById("nameMarketer").innerHTML = (marketer.name); 
     } 
    }); 
} 

cshtml Datei (die die Skriptdatei Pfad enthalten):

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="~/Scripts/outBrain.js"></script> 
@{ 
    ViewBag.Title = "Home Page"; 
} 
<br /> 
<div class="details"> 
    <label>Enter Marketer ID</label> 
    <input type="text" class="form-control" id="marketerID"> 
    <input type="button" class="btn btn-default" value="OK" id="buttonB" /> 
    <section class="details"> 
     <div class="name"> 
      <label>Name</label> 
      <label id="nameMarketer"></label> 
     </div> 
    </section> 
</div> 

Es gibt auch den Code der Controller, aber nicht einen Punkt, um es hinzuzufügen.

+0

Scheint gut für mich? https://jsfiddle.net/mqLtw4s0/ – Liam

+0

Haben Sie [debugged] (http://stackoverflow.com/questions/988363/how-can-i-debug-my-jicascript-code) es? – Liam

+0

@Liam ja er tut. Versuchen Sie, das Klickereignis in eine anonyme Funktion zu platzieren. – bilpor

Antwort

2

Versuchen:

$("#buttonB").click(function() { 
    getMarketer(); 
}); 
+1

Während dies eine gültige Antwort sein kann, sind Sie viel eher anderen zu helfen, indem Sie erklären, was der Code tut und wie er funktioniert. Nur-Code-Antworten erhalten weniger positive Aufmerksamkeit und sind nicht so nützlich wie andere Antworten. – Aurora0001

+1

Das ist ein nützlicher Tipp, danke. – Bushido

2

Ihr Selektor in AJAX fehlt ein #. Es ist $("marketerID").val(), sollte $("#marketerID").val(); sein

Könnte dies das Problem sein?

1

Ändern Sie diesen Code

$.ajax({ 
     url: "/home/GetOutBrainMarketers", 
     data: { id: $("marketerID").val() }, 
     success: function (result) { 
      var marketer = JSON.parse(result); 
      document.getElementById("nameMarketer").innerHTML = (marketer.name); 
     } 
    }); 

durch diese:

$.ajax({ 
     url: "/home/GetOutBrainMarketers", 
     data: { id: $("marketerID").val() }, 
     success: function (result) { 
      var marketer = JSON.parse(result); 
      $("#nameMarketer").html(marketer.name); 
     } 
    }); 

und viel Glück

0
I think, you have to put the your js files at the end, so it wwil be like this: 


@{ 
    ViewBag.Title = "Home Page"; 
} 
<br /> 
<div class="details"> 
    <label>Enter Marketer ID</label> 
    <input type="text" class="form-control" id="marketerID"> 
    <input type="button" class="btn btn-default" value="OK" id="buttonB" /> 
    <section class="details"> 
     <div class="name"> 
      <label>Name</label> 
      <label id="nameMarketer"></label> 
     </div> 
    </section> 
</div> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="~/Scripts/outBrain.js"></script> 

Ich schlage vor, dass Sie @section verwenden, damit Ihr Code besser organisiert wird.

Verwandte Themen