关于表单的Javascript问题

时间:2010-03-11 14:43:01

标签: javascript html

我有一个包含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")
    }
}

我认为我在那里的代码应该可以工作,也就是说,如果我知道我输入的语法应该是什么,“用户输入的文本”。任何人都可以告诉我该语法应该是什么?我是否采取了正确的方式来做这件事,还是有更好的方法?

提前致谢。

6 个答案:

答案 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。