<input type="submit" onclick="Sentence()">
要从 Function 创建实例,您必须在函数上使用 new 运算符。此外,由于组合所有属性的逻辑是在计算方法中。你需要这样的东西:
<input type="submit" onclick="(new Sentence()).calcul()">
但是,我建议您使用Sentence 构造函数可用的参数来设置句子实例的属性,如下所示:
function Sentence(name, date, hours, result) {
this.name = name;
this.date = date;
this.hours = hours;
this.result = result;
};
而且,您的 onclick 事件将如下所示:
<input type="submit" onclick="exampleSentence()">
另外,由于所有这些都变得混乱,我建议您从 HTML 中删除事件处理程序并将其添加到 JavaScript:
function exampleSentence() {
var exampleSentence = new Sentence(document.getElementById('name').value, document.getElementById('date').value, document.getElementById('hours').value, document.getElementById('result').value);
exampleSentence.calcul();
}
同样,由于您的 calcul 方法负责将表单值组合成一个段落,您应该重构 calcul 方法以组合值并返回结果句子,但不负责附加它:
Sentence.prototype.calcul = function () {
var sentence = this.name + " a facut curatenie pe " + this.date + " timp de " + this.hours + " si a fost " + this.result;
return sentence;
}
而且,您的 exampleSentence 方法将如下所示:
function exampleSentence() {
var exampleSentence = new Sentence(document.getElementById('name').value, document.getElementById('date').value, document.getElementById('hours').value, document.getElementById('result').value);
document.getElementById("example").innerHTML = exampleSentence.calcul();
}
这一切的结果是:
function exampleSentence(e) {
e.preventDefault();
var exampleSentence = new Sentence(document.getElementById('name').value, document.getElementById('date').value, document.getElementById('hours').value, document.getElementById('result').value);
document.getElementById("example").innerHTML = exampleSentence.calcul();
}
function Sentence(name, date, hours, result) {
this.name = name;
this.date = date;
this.hours = hours;
this.result = result;
};
Sentence.prototype.calcul = function () {
var sentence = this.name + " a facut curatenie pe " + this.date + " timp de " + this.hours + " si a fost " + this.result;
return sentence;
}
<div>
<form id="questions">
<input type="text" id="name" ><br><br>
<input type="text" id="date"><br><br>
<input type="text" id="hours"><br><br>
<input type="text" id="result"><br><br>
<input type="submit" onclick="exampleSentence(event)">
</form>
<p id="example"></p>
</div>