HTML:
<html>
<body>
<input type = "text" name = "name" id = "name"> </input>
<button type = "submit" id = "submit">Find Student </button>
<script type = "text/javascript" src="ObjectTest.js"></script>
</body>
</html>
使用Javascript:
var Matt = {
GPA: 4.0,
Faculty: "Science",
Year: 1
};
我有一个我用某些值定义的对象。
我要做的是允许将文本输入文本框。 当点击提交按钮时,将运行一个javascript函数来抓取文本框中的值,如果它等于对象值,那么它将console.log属性。
这是我更好的尝试:
function findStudent(){
var student = document.getElementById('name').value;
return student;
}
console.log(student);
答案 0 :(得分:0)
很难确切地知道您正在尝试实现的目标或您的对象来自哪里,但您的对象可能需要看起来像:
var student = {
name:'Matt',
gpa:4.0,
faculty:'Science',
year: 1
}
尝试类似:
function checkName(){
var name = document.getElementById('name').val();
if(name === student.name){
console.log('same');
}
else{
console.log('different');
}
}
在你的按钮中调用,例如:
<button onclick="checkName()">Check Student</button>
答案 1 :(得分:0)
您必须考虑结构。应该有很多学生。为每个学生设置多个对象是不切实际的:
var st1 = { ... }
var st2 = { ... }
相反,使用所有学生声明一个对象更为实际。并将值放在数组中:
var students = {
"Matt": ["4.0", "science", "1.0"],
"Laura": ["3.0", "comedy", "2.2"],
...
}
您可以将数组作为信息输出到相应的学生:
function findStudent() {
var info = [];
var student = document.getElementById("name").value;
for (name in students) {
if (name === student) {
info = students[name];
}
}
alert(info);
}
答案 2 :(得分:0)
如果您想使用提交按钮,它应该是一个表单。即使您不想提交表单,这也可以更轻松地处理输入。我修改了对象,使其具有名称属性。
var Matt = {
name: 'Matt',
GPA: 4.0,
Faculty: "Science",
Year: 1
};
function checkValue(form) {
if (form.studentName.value == Matt.name) {
form.output.value = ('Match');
} else {
form.output.value = ('Not a match');
}
return false;
}
&#13;
<form onsubmit="return checkValue(this);">
<label for="studentName">Name: <input name="studentName" id="studentName"></label>
<button>Check the name</button>
<br>
<label for="output">Output: <input name="output" id="output"></label>
</form>
&#13;
checkValue 函数的主体可以是:
form.output.value = form.studentName.value == Matt.name? 'Match' : 'Not a match';
然而,较长的版本更容易理解。