我的网站有一个允许用户输入的表单。我想要做的是,如果用户在与对象中的一个字符串匹配的表单中输入字符串,它应该打印与字符串相关联的值。我基本上把它设置成像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>
答案 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)
字典需要反转,如下所示。
dearn_dictionary={
"pila" : "pizza",
"nasty" : "nally",
"short for nasty" : "nas",
};
可以使用Object["PropertyName"]
语法访问Javascript属性。因此,您可以尝试dearn_dictionary["pila"]
获取&#39; pizaa&#39;;
您可以尝试使用以下代码。
<!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;
答案 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元素。