JQUERY:查找表单元素

时间:2011-03-23 17:54:37

标签: jquery asp.net master-pages

在混乱之前

我曾经有过这个...

在头部

<script type="text/javascript">$(function() { $("form.openid:eq(0)").openid(); });</script>
在jquery.openid.js

var direct = function () {
    var $li = $(this);

    $this.unbind('submit').submit(function() {
      $id.val($this.find("li.highlight span").text());
    });
    $this.submit();
    return false;
  };

并在身体部位

<form class="openid" method="post" action="/Login.xhtml?ReturnUrl="> 
  <div>
   <ul class="providers">  
    <li class="direct" title="Google"> <img src="images/googleW.png" alt="icon" />
   </ul>
  </div>  
</form>

就像魅力一样。

混乱之后

现在,因为我想在ASP.NET页面中添加以上内容作为内容,我做了相应的更改

在MasterPage的头部

<script type="text/javascript">$(function () { $("#test.openidd").openid(); });</script>

在正文部分,我添加了id=test的div和等于openidd的等级。

<div id ="test" class="openidd">
  <ul class="providers">
  <li class="direct" title="Google"> <img src="images/google.png" />     
  </ul>
</div> 

那么我应该对jquery.openid.js进行哪些更改才能使其正常工作?

我的意思是在第一种情况下$this引用form.openid:eq(0) 在第二种情况下,$this引用#text.openidd,表单永远不会提交。

我想JQUERY中存在类似$this.FindParentForm的内容,但我不知道!

请保持您的答案尽可能简单,因为我是新手

提前谢谢。

更新 从我到目前为止看到的答案,我猜或我没有明确我的问题或我是soooo新手。我添加了div标签作为元素的外壳。该表单包含jquery混淆的其他<li>等。我不喜欢那样!这就是为什么在我的帖子中我相信这项工作必须在jquery.openid.js文件中完成...类似

$this.GETParentFORM.unbind('submit').submit(function() {
   $id.val($this.GETParentFORM.find("li.highlight span").text());
   });
$this.GETParentFORM.submit();

6 个答案:

答案 0 :(得分:1)

使用jQuery在ASP.NET中要注意的一点是,任何具有runat="server"的控件都将具有基于原始ID的自动生成的ID。只是说,特别是如果你打算通过jQuery选择ID。

据说,据说,任何ASP.NET页面中都只有一个表单(位于MasterPage上的表单)。因此,要选择它,您实际需要做的就是去

$('form')

但如果你想走你的路,我会用

$('#test.openidd').closest('form')

答案 1 :(得分:0)

您可以将其更改为:

<script type="text/javascript">$(function () { $("#test.openidd").parents('form').openid(); });</script>

虽然我觉得最好给你的表单一个像:

<form id="submitForm5" ...>

然后将javascript代码更改为:

<script type="text/javascript">$(function () { $("#submitForm5").openid(); });</script>

答案 2 :(得分:0)

也许试试这个?

$("#test.openidd").parent().openid();

答案 3 :(得分:0)

$('form').find('li.highlight span').text();

IE

$('form').unbind('submit').submit(function() {
   $id.val($('form').find("li.highlight span").text());
   });
$('form').submit();

答案 4 :(得分:0)

由于ASP.NET会修改表单的ID,因此您仍然可以使用最近来获取表单元素。在此代码中,您将获得名为 form test.openidd 最近的elemet,它将成为表单本身。

$('#test.openidd').closest('form').unbind('submit').submit(function() {
   $id.val($('#test.openidd').closest('form').find("li.highlight span").text());
   });
$('#test.openidd').closest('form').submit();

答案 5 :(得分:0)

<强> CODE

$(this).parents('form#myId')...

示例

http://jsfiddle.net/ngdcs/