Javascript 为什么我的onClick不起作用?
我正在尝试使用knockout.js获取一个按钮来创建文本。我不确定是html还是javascript出现了问题,但控制台说的是,我的onclick for'start'id为nullJavascript 为什么我的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
<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