Javascript表单操作

时间:2012-09-24 17:19:27

标签: javascript html forms autocomplete

我的页面上有一个文本字段,其中包含一个自动填充功能,其中包含数据库中的项目。选择此选项后,使用jquery将页面滚动到页面上结果的位置。我希望表单滚动到提交按钮上的结果,而不必再次单击文本字段。我如何编辑我的代码以便它在提交时发生,而不是在文本字段上单击

表单代码 -

<form autocomplete="off">
<form name="search-highlight" id="search-highlight" method="post" action="#">
<p>
Film Name <label>:</label>
<input type="text" name="scroll" id="scroll" class="scroll"/>
                       <!--input type="button" value="Get Value" /-->
 </p>
<input type="submit" value="find" />
</form>

和javascript

$("#scroll").autocomplete("get_film_list.php", {
    width: 260,
    matchContains: true,
    //mustMatch: true,
    //minChars: 0,
    //multiple: true,
    //highlight: false,
    //multipleSeparator: ",",
    selectFirst: false
});


$("#scroll").click(function(){  

    // start variables as empty  
    var scroll = "";  
    var n = "0";  

    // hide the results at first  
    $("p.results").hide().empty();  
    // grab the input value and store in variable  
    scroll = $('#scroll').attr('value');  
    console.log("The value of film is: "+scroll);  

    $('span.highlight').each(function(){  
        $(this).after($(this).html()).remove();  
    });  

    if($('#scroll').val() == ""){  
        $("p.results").fadeIn().append("Enter film in field above");  
        $('#scroll').fadeIn().addClass("error");  
        return false;  
    }else{  
       $('div.timeline :contains("'+scroll+'")').each(function(){ 
           $(this).html($(this).html().replace(new RegExp(scroll,'g'), '<span class="highlight">'+scroll+'</span>'));  
           $(this).find('span.highlight').fadeIn("slow"); 
           var offset = $(this).offset().top
           $('html,body').animate({scrollTop: offset}, 2000);
           return false;

        });  

        // how many did it find?  
        n = $("span.highlight").length;  
        console.log("There is a total of: "+n);  

        if(n == 0){  
            $("p.results").fadeIn().append("No results were returned");  
        }else{  
            $("p.results").fadeIn().append("<strong>Returned:</strong> "+n+" result(s) for: <em><strong>"+scroll+"</strong></em>.");  
        }  
        return false;  
    }  
});  
});

我希望你理解我的问题 - 如果没有,那就是演示(未优化)www.ignitethatdesign.com/CheckFilm/index.php

DIMENSION

1 个答案:

答案 0 :(得分:0)

如果您更改$("#scroll").click(以定位提交按钮(类似$("#search-highlight input[type='submit'].click),则可以获得此行为。

您应该扩展点击回调的签名以包含事件参数,如

.click(function(event)){以后您可以致电event.stopPropagation(),向浏览器表明您输入的点击事件已被处理(并且不会尝试将表单发回)。