繁体   English   中英

JavaScript onSubmit表单处理

[英]JavaScript onSubmit form handling

因此,我正在尝试制作一个Chrome扩展程序,以查询的形式接受用户输入,针对与该查询相关的图像抓取Flickr的API(有效地在查询中进行搜索),然后放置它们以及指向的链接他们的位置,到页面上。 我从一个教程站点偷了它,该站点的示例扩展在没有用户输入和链接的情况下完成了上述操作。 我试图自己做链接,但我失败了,所以不得不在这里寻求帮助。 现在,我在设置用户输入方面失败了。 我首先尝试过PHP,因为chrome在扩展程序中显然无法正常工作,从而使chrome崩溃了,所以现在我一直尝试使用JS。 我尝试为搜索表单执行onsubmit事件,然后我意识到必须将所有代码都放在onsubmit函数的{}中。 不幸的是,由于在JavaScript中声明变量的方式不起作用,因为如果所有内容都在函数内部,则所有声明的变量都将变为private 因此,主要函数中的其他函数无法使用它们,从而使脚本无用。 理想的解决方案是在函数内声明公共变量的方法,不幸的是,在搜索半小时后,我找不到任何有效的/我理解的方法。 有人可以帮帮我吗? 如果您告诉我我所有的预后都是错误的,为什么,我会很满意的,如果您告诉我我的所有预后都不对,我会很高兴。

到目前为止,我的代码:

var req = new XMLHttpRequest();
req.open(
"GET",
"http://api.flickr.com/services/rest/?" +
    "method=flickr.photos.search&" +
    "api_key=90485e931f687a9b9c2a66bf58a3861a&" +
    "text=cake&" +
    "safe_search=1&" +  
    "content_type=1&" +  
    "sort=relevance&" +  
    "per_page=24",
true);
req.onload = showPhotos;
req.send(null);


function showPhotos() {
  var photos = req.responseXML.getElementsByTagName("photo");

  for (var i = 0, photo; photo = photos[i]; i++) {
    var photos = req.responseXML.getElementsByTagName("photo");
    var a = document.createElement("a");
    a.setAttribute("href",constructImageURL(photo));
    a.setAttribute("target","_blank");

    var img = document.createElement("img");
    img.setAttribute("src",constructImageURL(photo));

    a.appendChild(img);
    document.getElementById("images").appendChild(a);
  }
}

function constructImageURL(photo) {
  return "http://farm" + photo.getAttribute("farm") +
  ".static.flickr.com/" + photo.getAttribute("server") +
  "/" + photo.getAttribute("id") +
  "_" + photo.getAttribute("secret") +
  "_s.jpg";
}

这没有我失败的onsubmit代码。 HTML页面本身仅包含导入上述脚本的标签,图像的div和表格:

<div id="images">
</div>
<form name="queryForm" onsubmit="javascript: querySubmit()">
Search: <input type='text' name='query'>
<input type="submit" />
</form>

有人可以帮忙吗?

这就是为什么我讨厌jQuery ..参见我的HTML 5表单示例...

http://netjs.codeplex.com/SourceControl/changeset/view/91818#1775033

http://netjs.codeplex.com/SourceControl/changeset/view/91818#1775035

您需要向表单添加事件,例如

myform.addEvent('submit', myFunction);

然后从那里处理您需要做的事情...

当然,由于您不了解jQuery所促进的javascript,因为它将所有内容都变成了shit,因此jQuery与它以及它的更多内容几乎无关。 您只是在使用不良做法,并且需要将逻辑分解为各种功能以实现可维护性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM