2017-01-30 8 views
3

Я продолжаю получать эту синтаксическую ошибку в браузере. Я не уверен, что мне здесь не хватает.Uncaught ReferenceError: lookup не определен в HTMLButtonElement.onclick

В основном я пытаюсь сделать запрос к внешнему веб-api, который принимает массив отмеченных флажков в качестве параметров, переданных в параметре запроса.

Это мой javascript.

function lookup() { 
     var query = document.getElementById("sform").value; 
     // var res = PageMethods.lookupfromjs_Click(query, onSuccess, onError); 
     var dttypeList; 
     $('#Button1').click(function() { 
      $('input[type=\"checkbox\"]').each(function(){ 
       dttypeList.push(this.name); 
       alert($.toJSON(dttypeList)); 
      }); 
     });​ 
    } 

Вот HTML

<!DOCTYPE html> 

<head runat="server"> 
    <title></title> 
    <link href="style.css" rel="stylesheet" type="text/css" /> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" type="text/javascript"></script> 
     <script src="Scripts/lookup.js" type="text/javascript"></script> 
    <script src="Scripts/getdatatype.js" type="text/javascript"></script> 
</head> 
<body> 
    <section class="webdesigntuts-workshop"> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" > 

     </asp:ScriptManager>  
    <div> 

     <asp:TextBox type="search" name="search" id="sform" placeholder="What are you looking for?" runat="server" />  
     <asp:TextBox type="search" name="hdnText" id="hdnText" runat="server" /> 

     <button id="Button1" onclick="lookup()" type="button">Search</button> 

    </div> 
    <div> 
     <p> </p> 
    </div> 

      <div> 
       <button id="Getdtbtn" type="button" onclick="getDatatypes()">Get Datatypes</button> 
      </div> 
     </form> 


     </section> 
</body> 
</html> 
+1

ваш поиск не доступен во всем мире. также dttypelist должен быть инициализирован как [] – YOU

+0

извините за незавершенность .. Я не думал, что это было актуально. Мой javascript находится в отдельном файле lookup.js в папке Scripts. Этот файл ссылается с помощью тега сценария в html-файле. – codingyo

ответ

2

ли нужно даже функция поиска будет объявлена? При ограниченном HTML фрагмент кода вы в курсе, я пытался булыжник что-то ближе друг к другу, напоминающее то, что вы, возможно, пытались достичь:

var query = document.getElementById('sform').value; 
 
var dtypeList = []; 
 
$('#Button1').click(function() { 
 
    $('input[type="\checkbox\"]').each(function() { 
 
    dtypeList.push(this.name); 
 
    alert(JSON.stringify(dtypeList)); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form id="sform"> 
 
    <label for="Hello">Hello</label> 
 
    <input type="checkbox" name="Hello"> 
 
    <label for="World">World</label> 
 
    <input type="checkbox" name="World"> 
 
    <button id="Button1" type="button">Search</button> 
 
</form>

Это еще перебирает все флажки и выплевывает их на предупреждение, как только вы нажмете кнопку.

Кроме того, пожалуйста, обратитесь к этому сообщению о $ .toJSON(): https://stackoverflow.com/a/7759630/3611025

+1

Вы действительно должны использовать фрагмент вместо кодефа. То есть вы можете продемонстрировать HTML прямо на SO. – Soviut

+1

@Soviut Спасибо за совет. Совершенно новый ответ на вопросы о stackoverflow и все еще привыкший к вещам. Рад видеть людей, помогающих новым помощникам :) –

 Смежные вопросы

  • Нет связанных вопросов^_^