如何创建一个在HTML中打印对象值的函数

时间:2017-01-13 00:03:39

标签: javascript html

    我的网站有一个允许用户输入的表单。我想要做的是,如果用户在与对象中的一个字符串匹配的表单中输入字符串,它应该打印与字符串相关联的值。我基本上把它设置成像Python中的字典一样。如何编写JavaScript函数来执行此操作?

例如:如果用户输入" pila"我想要它打印"比萨"。这是我的代码:

<!DOCTYPE html>
<html>
<head>
<h1>Welcome to the dearn translater</h1>
<body>

<p>Enter the word you want to translate:</p>

<form id="dearn" action="form_action.asp">
Dearn Word: <input type="text" name="dword"><br>
<input type="button" onclick="myFunction()" value="Submit">
</form>

<script>
dearn_dictionary={
"pizza" : ["pila"],
"nally" : ["nasty"],
"nal" : ["short for nasty"],
}
</script>

</body>
</html>


</P>

3 个答案:

答案 0 :(得分:2)

是的,您可以通过查看dearn_dictionary[key] != undefined来测试输入的值是否是对象中的键,从而实现此目的。 (你必须实际点击我的例子中的'submit'按钮,而不是点击enter,因为SO上的代码事件不允许你实际提交表单)

dearn_dictionary={
"pizza" : "pila",
"nally" : "nasty",
"nal" : "short for nasty",
};
$('#submit').on('click',function() {
  var dword = $('#dword').val();
  if (dearn_dictionary[dword] != undefined) {
    $('#out').html(dearn_dictionary[dword]);
  }
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="dearn" action="form_action.asp">
Dearn Word: <input type="text" name="dword" id="dword"><br>
<input type="button" value="Submit" id="submit">
</form>

<p id="out"></p>

答案 1 :(得分:1)

  1. 字典需要反转,如下所示。

    dearn_dictionary={
    "pila" : "pizza",
    "nasty" : "nally",
    "short for nasty" : "nas",
    };
    
  2. 可以使用Object["PropertyName"]语法访问Javascript属性。因此,您可以尝试dearn_dictionary["pila"]获取&#39; pizaa&#39;;

  3. 的价值

    您可以尝试使用以下代码。

    &#13;
    &#13;
    <!DOCTYPE html>
    <html>
    <head>
    <h1>Welcome to the dearn translater</h1>
    <body>
    
    <p>Enter the word you want to translate:</p>
    
    <form id="dearn" action="form_action.asp">
    Dearn Word: <input type="text" id="word" name="dword"><br>
    <input type="button" onclick="myFunction()" value="Submit">
    </form>
    
    <script>
    dearn_dictionary={
    "pila" : "pizza",
    "nasty" : "nally",
    "short for nasty" : "nas",
    };
    
      function myFunction(){
        var textval = document.getElementById("word").value;
        alert(dearn_dictionary[textval]);
      }
        
    </script>
    
    </body>
    </html>
    &#13;
    &#13;
    &#13;

答案 2 :(得分:0)

这是一种可能的解决方案:

<form id="dearn" action="form_action.asp">
Dearn Word: <input type="text" name="dword"><br>
<input type="button" onclick=myFunc(this.form.dword.value) value="Click Me!">
</form>

<p id="demo"></p>

<script>
var dict = {foo: "bar", bar: "foo"}
function myFunc(val) {
    document.getElementById("demo").innerHTML = dict[val];
}
</script>

我们在这做什么?

使用名为“dword”的文本字段创建表单 使用此表单dword输入值作为参数添加一个调用“myFunc”的输入按钮。

添加一个id'd元素“demo”,我们可以将文本写入。

将字典分配给变量“dict”

定义函数myFunc,它接受参数val,然后将值添加到具有键值val的demo元素。