我有一个包含2个文本输入和2个单选按钮的表单,如下所示:
<form id="form1" method="get" onSubmit="exec()" action="default.html">
<label>First input<label>
<input type="text" id="input1"/><br />
<label>Second input</label>
<input type="text" id="input2"/><br />
<label>Radio button 1</label>
<input type="radio" id="radio1"/>
<label>Radio Button 2</label>
<input type="radio" id="radio2"/><br />
<input type="submit" value="Search">
</form>
一旦用户点击“搜索”按钮,将调用exec()
方法,这就是我正在寻求帮助的方法。从上面的代码中可以看出,默认操作指向一个名为default.html
的页面,但这可能会根据用户输入文本的输入框和选中的单选按钮而改变。所以我认为我的exec()
方法应该是这样的:
function exec()
{
if(document.getElementById("radio1").checked) &&
if(document.getElementById("input1").**has text entered by user**
{
document.getElementById("form1").setAttribute("action", "AnotherPage.html")
}
}
我认为我在那里的代码应该可以工作,也就是说,如果我知道我输入的语法应该是什么,“用户输入的文本”。任何人都可以告诉我该语法应该是什么?我是否采取了正确的方式来做这件事,还是有更好的方法?
提前致谢。
答案 0 :(得分:2)
document.getElementById(“input1”)。有用户输入的文字
应该是
document.getElementById("input1").value.length > 0
我强烈建议花10分钟看jQuery。只需引用页面中的jquery.js,您就可以消除下一个与浏览器不兼容的问题。
答案 1 :(得分:1)
尽管不知道如何检测文本,但你的if语句有点不对......
function exec()
{
if (document.getElementById("radio1").checked && document.getElementById("input1").value != "")
{
document.getElementById("form1").setAttribute("action", "AnotherPage.html")
}
}
还有一些其他情况需要处理......如果用户选择了选项1但未输入文本怎么办?如果不符合某些条件,您可能需要从执行功能中将onSubmit="exec()"
更改为onSubmit="return exec()"
和return false
。
答案 2 :(得分:0)
这应该有效:
document.getElementById("input1").value.length > 0
答案 3 :(得分:0)
属性value
存储输入到字段中的文本。你需要在检查空格之前修剪空格,所以这样的东西可能适合你:
document.getElementById("input1").value.replace(/^\s*|\s*$/g, '').length > 0
答案 4 :(得分:0)
function exec()
{
if(document.getElementById("radio1").checked && document.getElementById("input1").value!='')
{
document.getElementById("form1").setAttribute("action", "AnotherPage.html")
}
}
我已重新格式化您的IF语句。
请注意,如果要将字段发送到服务器,则字段需要NAME属性,而不仅仅是ID。
答案 5 :(得分:0)
也可能是
if(document.getElementById("input1").value){
/* code */
}
因为空字符串将评估为false。