根据内容查找登录表单

时间:2012-04-09 06:06:39

标签: javascript jquery html forms

基本上,当HTML文档中有多个forms时,我想找出登录表单。我的猜测如下:如果我可以确定哪些表单字符串(例如'forgot your password''Remember me''keep me signed in'属于那么它可能是登录表单,因为这样的字符串/链接出现在密码字段之后

有什么方法可以找出哪个表单包含这些字符串/链接,然后在我的应用中使用该表单的名称或ID?

更新:我使用以下代码来获取包含字符串'忘记密码'的表单ID,但它不返回任何内容。

NSString *formID = [NSString stringWithFormat:@"%@",[self.browser stringByEvaluatingJavaScriptFromString:@"$('form').filter (function() {var text = this.innerHTML.toLowerCase();" 
                        "return text.indexOf('forgot your password') != -1 || "
                        "text.indexOf('remember me') != -1;}).attr('id');"] ];

2 个答案:

答案 0 :(得分:3)

var loginFormId = $('form').filter(function() {
    return this.innerHTML.indexOf('forgot your password') != -1;
}).attr('id');​

或仅使用:contains

var loginFormId = $('form:contains("forgot your password")').attr('id');​

:contains选择器docs

  

描述:选择包含指定文本的所有元素。   匹配文本可以直接出现在所选元素中,任何元素的后代中,或其组合中。与属性值选择器一样,括号内的文本:contains()可以写为单词或用引号括起来。文本必须具有匹配的案例才能被选中。

LIVE DEMO


<强>更新

如果您不确定文字的大小写,则必须使用filter

var theFormId = $('form').filter(function() {
    var text = this.innerHTML.toLowerCase(); 
    return text.indexOf('forgot your password') != -1 || 
           text.indexOf('remember me') != -1;

答案 1 :(得分:1)

var loginForm;
$("form").each(function(){
    if($(this).text().indexOf("Remember me")>=0)
         loginForm = $(this);
})