Android Javascript表单提交工作在2.1-update1,但不是2.2及以上

时间:2011-12-02 01:08:02

标签: android

我有一个活动,我在其下面使用带有Android按钮的webview。我在webview中加载了一个web html表单。我没有在html表单中使用提交按钮,而是在页面中放置了以下简单的javascript函数:

function submitFrm() { document.listupdate.submit(); }

在我的活动中,一个android按钮触发javascript并提交表单。就像Android 2.1-update1中的魅力一样,但它不适用于2.2或更高版本。就像我说的那样,它已经在Android 2.1-update1上运行了。谁能让我快速了解原因,以及我需要实施哪些变化?

upDtListingtBtn.setOnClickListener(new Button.OnClickListener(){ 
  @Override  
  public void onClick(View v) {  
    webView = (WebView) findViewById(R.id.listinginfowebview);  
    **webView.loadUrl("javascript:submitFrm()");**  
    progressDialog = ProgressDialog.show(ListingInfoActivity.this, "", "Updating...");  
    new Thread() {  
    public void run() {  
    try{  
    sleep(2000);  
    } catch (Exception e) {  
    }  
    progressDialog.dismiss();  
    }  
    }.start();  
}});  

是的,启用了javascript - 它适用于2.1update1!

webView.getSettings().setJavaScriptEnabled(true);

代码块的其余部分,如您所见,只运行一个虚拟的progressDailog。

1 个答案:

答案 0 :(得分:0)

令我尴尬的是我的头埋在沙里,而不是让自己知情; 它似乎是长期存在的Javascript - 文档对象方法 - 形式绑定方法:

document.form.submit();

在2.1-update1之后的Android webview中不支持

,而不是支持jquery方法。

$("form").submit();

下载并放置后:

<script language="JavaScript" type="text/javascript" src="/xyz/js/jquery-1.7.min.js"></script>

我的html文档头部的文件引用; 我只是将语法更改为jquery方法:

function submitFrm() { $("listupdate").submit(); }

表格现在在Android 2.2及更高版本中提交。 Java代码中无需进行任何更改!