获取输入值,看它是否等于定义的对象

时间:2015-12-13 23:35:21

标签: javascript dom

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);

3 个答案:

答案 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);
}

JSFiddle

答案 2 :(得分:0)

如果您想使用提交按钮,它应该是一个表单。即使您不想提交表单,这也可以更轻松地处理输入。我修改了对象,使其具有名称属性。

&#13;
&#13;
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;
&#13;
&#13;

checkValue 函数的主体可以是:

form.output.value = form.studentName.value == Matt.name? 'Match' : 'Not a match';

然而,较长的版本更容易理解。