2010-11-09 76 views
0

是我的HTML表单,我不得到任何错误,如果我没有<form标签,所以我添加一个表单标签是这样的:错误:当我尝试添加<form标签下面

<form class="cmxform" id="commentForm" method="post" action=""> 

得到这个错误:

Microsoft JScript runtime error: 'first_name' is undefined 

当我尝试读取文本框的值:

First Name: 
<input id="first_name" class=" text hasCorners required" maxlength="200" 
name="first_name" /> 

function PostData() { 
     var _firstName = first_name.value; 
     ...... 
     ...... 

$(document).ready(function() { 

      $('#btnRegister').click(function() { 
       PostData(); 
      }); 

回答

2

尝试:

var _firstName = $('#first_name').val(); 
+0

即使我使用jquery我必须使用document.getElementById('first_name')? – 2010-11-09 16:03:31

+0

@Abu:没有注意到jquery标签之前,已经更新。 – RedFilter 2010-11-09 16:04:24

+2

@RedFilter:使用jQuery它也需要'$('#first_name')。val()'。 – RoToRa 2010-11-09 16:09:01

0

好像你需要先指定表单元素的ID:

commentForm.first_name.value; 

不知道为什么,虽然。


编辑:为了澄清,这解决了您使用该技术的IE问题。正如@bobince在下面的评论中指出的那样,除非您针对特定的浏览器,否则作为全局属性访问ID并不安全。

根据您的问题中的代码和您在另一个答案下的评论,看起来您已经知道如何使用jQuery和getElementById通过ID进行选择。

+0

这仍然依靠IE/Opera使ID/named元素可用作全局变量,这是一个坏主意。 – bobince 2010-11-09 16:22:01

+0

@bobince - 同意。只是基于所使用的技术给出一个IE问题的解决方案,因为OP已经知道如何使用jQuery和'document.getElementById'来选择ID。 – user113716 2010-11-09 16:25:22