Javascript 为什么我的onClick不起作用?

Javascript 为什么我的onClick不起作用?,javascript,html,knockout.js,onclick,Javascript,Html,Knockout.js,Onclick,我正在尝试使用knockout.js获取一个按钮来创建文本。我不确定是html还是javascript出现了问题,但控制台说的是,我的onclick for'start'id为null <div style="margin:0 20px 0 20px;" > <p data-bind="text: currentQuestion"></p> <form id="discoutQuestions" action="no

我正在尝试使用knockout.js获取一个按钮来创建文本。我不确定是html还是javascript出现了问题,但控制台说的是,我的onclick for'start'id为null

   <div style="margin:0 20px 0 20px;" >
        <p data-bind="text: currentQuestion"></p>
        <form id="discoutQuestions" action="none">
         <button id="start" value="start">start</button>
         <label>Answer:</label>
         <input type="text" id="answer"/>
         <button id="answerSubmit" value="submit" onclick="questionare()">submit</button>
        </form>
   </div>




   document.getElementById('start').onClick(ko.applyBindings(questionList));
   document.getElementById('answerSubmit').onClick(function questionare()
   {
        var correct=0;
        var count=0;
        var questionList= new questionViewModel();
        function next()
        {
             questionList.setQuestion(questionList.getNext());
             ko.applyBindings(questionList);
        }
        var answer= document.getElementById('answer').value;
        if(answer==questionList.answers[0][1]&&count!=questionList.getLength())
        {
             correct++;
             count++; 
             next();
        }
        else if(answer!=questionList.answers[0][1]&&count!=questionList.getLength())
        {
             count++;
             next();
        }
        else
        {
             react= new message();
             if(correct/count>.75)
             {
                   react.setQuestion("Congradualtions! You have won a discount.");
             }
             else{
                   react.setQuestion("We are sorry, you did not answer enough questions right ofr a discount.");
             }
             ko.applyBindings(react);
         }
     });

开始 答复: 提交 document.getElementById('start').onClick(ko.applyBindings(questionList)); document.getElementById('answerSubmit').onClick(函数questionare() { var=0; var计数=0; var questionList=新的questionViewModel(); 函数next() { setQuestion(questionList.getNext()); ko.应用绑定(问题列表); } var answer=document.getElementById('answer')。值; if(answer==questionList.answers[0][1]&&count!=questionList.getLength()) { 正确的++; 计数++; next(); } else if(answer!=questionList.answers[0][1]&&count!=questionList.getLength()) { 计数++; next(); } 其他的 { react=新消息(); 如果(正确/计数>0.75) { resact.setQuestion(“祝贺你!你赢得了折扣。”); } 否则{ setQuestion(“很抱歉,您没有回答足够多的问题,因为我们会打折扣。”); } ko.应用绑定(react); } });

此外,我的表单标记不会采取action=“none”,问题不在于onclick,而在于getElementById。

Javascript区分大小写,因此
。onclick
应该是
。onclick
您可以这样做:

document.getElementById('answerSubmit').onclick = function questionare(){}
<button id="answerSubmit" value="submit" onclick="questionare()">submit</button>
function questionare(){
    ..............Rest of code.........
}
document.getElementById('start').onClick = ko.applyBindings;

进一步说:

document.getElementById('answerSubmit').onclick = function questionare(){}
<button id="answerSubmit" value="submit" onclick="questionare()">submit</button>
function questionare(){
    ..............Rest of code.........
}
document.getElementById('start').onClick = ko.applyBindings;
提交
函数是(){
代码的其余部分。。。。。。。。。
}

不懂javascript编程的人在jQuery上学习了一点点编程知识,这就是问题所在

如果希望代码正常工作,请阅读有关事件侦听器或直接事件分配的内容,在这种情况下,需要将函数分配给处理程序,如下所示:

document.getElementById('answerSubmit').onclick = function questionare(){}
<button id="answerSubmit" value="submit" onclick="questionare()">submit</button>
function questionare(){
    ..............Rest of code.........
}
document.getElementById('start').onClick = ko.applyBindings;

但是有一个问题,当您尝试分配这样一个事件处理程序时,您不能发送任何参数,收到的唯一参数是触发事件时神奇地生成的事件对象

onclick不是错误,返回null的是getElementById