是否可以从文档中的输入字段执行简单的 javascript 语句
Is it possible to execute simple javascript statments from an input field in a document?
在下面的示例中,我将一个函数main
附加到输入字段。 该函数包含发送带有可变消息的警报的指令(无论用户输入到字段中的任何内容)。
<form>
<input type="text" onsubmit="main()" />
<input type="submit" />
</form>
<script>
function main (param) {
alert(param)
}
//main();
</script>
它不起作用,但我相信那是因为我犯了一些我无法识别的菜鸟错误。此代码的功能版本的结果是能够提交"hello world"
并生成一个警报框,说明"hello world"(不带引号)。
但是,除此之外,我希望能够将main("hello world");
或仅alert('hello world');
之类的内容传递给输入字段以产生相同的结果。
我认为我遇到的问题是每次提交时都会刷新页面。这里有一些类似的问题,人们建议使用onsubmit="main(); return false;"
,但实际上这似乎不起作用。
看起来您想eval()
输入的值。
慎用,有安全隐患...
从处理程序返回false
会停止常规操作,因此在提交后没有重定向:
<form onsubmit="main(); return false;">
<input id="eval-input" type="text" />
<input type="submit" />
</form>
<script>
function main () {
eval(document.getElementById('eval-input').value);
}
</script>
以下是检测表单提交的方法:
<form onsubmit="foo()">
<input type="text">
<input type="submit">
</form>
<script>
function foo(){
alert("function called");
}
</script>
但是,如果您希望通过函数管理表单数据,我建议您这样做(首选项):
<form id="myform">
<input type="text">
<input type="submit">
</form>
<script>
document.getElementById("myform").onsubmit=function(event){
alert("function called");
//manage form submission here, such as AJAX and validation
event.preventDefault(); //prevents a normal/double submission
return false; //also prevents normal/double a double submission
};
</script>
编辑:
使用 eval()
以 JavaScript 的形式执行字符串。
jQuery 方式:
您创建事件侦听器,当用户单击"提交"时将触发该侦听器。
<form>
<input type="text" id="text"/>
<input type="submit" />
</form>
<script>
$( "form" ).submit(function( event ) {
event.preventDefault();
alert( $('#text').val() );
});
</script>
为了防止页面重新加载 - 您应该使用event.preventDefault();
纯JavaScript:
<form>
<input type="text" id="text"/>
<input type="submit" id="submit" />
</form>
<script>
var button = document.getElementById("submit");
var text = document.getElementById("text");
button.addEventListener("click",function(e){
alert(text.value);
},false);
</script>
如果我明白你想做什么,你可以像这样调用函数,并编写参数[0].value,你可以访问输入值:
function main(params) {
//dosomething;
document.write(params[0].value);
}
<form onsubmit="main(this)">
<input type="text">
<input type="submit">
</form>
试试这样的事情
onchange="main()"
onmouseenter, onMouseOver, onmouseleave ...
<input type="text" onmouseenter="main()" />
相关文章:
- 如何在Knockout中对输入字段执行内联验证
- 使用数组表示法对多个字段执行jQuery日期选择器
- 唯一字段约束在 dropDatabase 之后未强制执行
- 在表单中搜索字段,然后对所有选定的结果执行某些操作
- 是否可以从文档中的输入字段执行简单的 javascript 语句
- 如何将 Google 地方自动完成功能配置为仅在输入字段中至少有 n 个字母时执行请求
- 在Razor生成的隐藏字段上强制执行类型,在没有强制转换的JavaScript中接收变量
- Jquery.脚本更改输入字段中的值.然后根据输入字段中的值需要执行if语句
- 如何在JavaScript中为HTML上的动态添加字段执行乘法
- jQuery-对表单中的每个字段执行操作
- 基于复选框字段对网格视图中的行执行操作
- 在输入字段中放入乘法或除法,以对其他2个输入字段执行乘法或除法
- 在输入字段中输入不执行任何操作的键
- 从隐藏字段执行javascript函数
- 仅在所有字段都已满或加载后更改时执行jQuery
- 如何从JS的输入字段执行脚本
- 如何在带有用户输入字段的HTML页面上执行SQL命令,并在同一页面上显示结果
- 当通过jquery更新输入字段时,执行一些操作
- 在lotus notes中从另一个表单获取字段值,以便在web上执行验证
- 如果字段有焦点,则执行事件