2016-11-24 77 views
-2

我建立了一些小的mvc asp.net项目来检查OutBrain API的一些功能。Javascript的onClick函数不工作

我做了一个输入类型的文本,得到MarketerI ID并应该返回他的名字(从服务器)。但是当我按下按钮什么都没有发生,我真的不知道为什么,并很乐意得到一些帮助!

感谢

我的代码:

outBrain.js文件

$("#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文件(包括脚本文件路径):

<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> 

也有代码的控制器,但没有看到一个点来添加它。

+0

对我来说似乎很好? https://jsfiddle.net/mqLtw4s0/ – Liam

+0

你有没有[调试](http://stackoverflow.com/questions/988363/how-can-i-debug-my-javascript-code)呢? – Liam

+0

@Liam是的,他的确如此。尝试将点击事件放置在匿名函数中。 – bilpor

回答

2

尝试:

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

虽然这可能是一个有效的答案,但通过解释代码的作用和工作原理,您更有可能帮助他人。仅有代码的答案往往会得到较少的积极关注,并没有其他答案那么有用。 – Aurora0001

+1

这是一些有用的建议,谢谢。 – Bushido

2

您在阿贾克斯的选择缺少#。 这是$("marketerID").val(),应该是$("#marketerID").val();

难道这是问题吗?

1

改变此密码

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

本:

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

和好运

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> 

我建议你使用@section,这样你的代码会更加整齐。