如何将这个函数添加到现有的由onload / onpaste触发的Javascript中?
Javascript no jquery - How do I add this function to existing javascript that is triggered by onload / onpaste?
这是我之前回答的问题的附加内容。
问题8423472
我试图实现一个验证函数到这个美妙的代码,但无济于事。
看起来我需要更多的帮助。
这个脚本是我从@Martin Jespersen收到的相当出色的答案的稍微修改版本。
该脚本接受电子邮件的单列列表,并将其分解为包含不超过150个地址的单行逗号分隔列表的文本区域。好。
下面的工作很好,但是,我需要添加一个基本的验证函数。
<html>
<head>
<script language=javascript type='text/javascript'>
function onpaste(e) {
var t = this;
var cnt='0';
setTimeout(function(){
var list = document.getElementById('t');
var emails= t.value.split(/'s+/), ta;
while(emails.length) {
cnt++;
ta = document.createElement('textarea');
ta.value = emails.splice(0,150).join(',').replace(/,'s*$/,'');
document.body.appendChild(ta);
}
document.getElementById('button1').value=cnt;
},1);
}
window.onload = function() {
document.getElementById('t').onpaste = onpaste;
}
</script>
</head>
<BODY>
<p><textarea id="t" rows="10" cols="50" class="textarea"></textarea><br /></p><br />
There are <input type="button" id="button1" value="0"> textareas
<pre id="p" class="pre"></pre>
</body>
</html>
然而,我为他做的那个家伙(实际上是@Martin做的)对他粘贴到文本区域的内容并不真正细致。
所以,我正试图实现一个功能,将减少无效的电子邮件/坏的输入。
我尝试了几种方法,包括使用onclick事件将onload事件更改为页面中的按钮。
我以为我在这里学习,但是,我就是不知道我做错了什么。
那么,我如何插入这个函数,或者只是它的"验证"例程到上面的函数之一?
function findEmailAddresses(StrObj) {
var separateEmailsBy = ''n';
var email = "<none>"; // if no match, use this
var emailsArray = StrObj.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+'.[a-zA-Z0-9._-]+)/gi); // yeah could be better
if (emailsArray) {
email = "";
for (var i = 0; i < emailsArray.length; i++) {
if (i != 0) email += separateEmailsBy;
email += emailsArray[i];
}
}
return email;
}
findEmailAddresses函数的使用:
<textarea name=t rows=10 cols=50 onBlur="this.form.email.value=findEmailAddresses(this.value);"></textarea>
我尝试在上面的函数中单独调用函数,甚至尝试删除函数,只是使用"email"而不是"this"插入代码。值"。我甚至试过两页纸的方法。由于某种原因,我无法将此代码实现到工作拆分器中。我的结果要么没有效果,要么我把东西弄坏了。
基本上我尝试了很多不同的插入方式。像下图:
<html>
<head>
<script language=javascript type='text/javascript'>
function onpaste(e) {
var t = this;
var cnt='0';
setTimeout(function(){
var list = document.getElementById('t');
var emails= t.value.split(/'s+/), ta;
//
findEmailAddresses(emails);
// also tried inserting code from function. ///
while(emails.length) {
cnt++;
ta = document.createElement('textarea');
ta.value = emails.splice(0,150).join(',').replace(/,'s*$/,'');
document.body.appendChild(ta);
}
document.getElementById('button1').value=cnt;
},1);
}
window.onload = function() {
// tried to trigger it here as well and even added a new split //
document.getElementById('t').onpaste = onpaste;
}
/////
function findEmailAddresses(StrObj) {
var separateEmailsBy = ''n';
var email = "<none>"; // if no match, use this
var emailsArray = StrObj.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+'.[a-zA-Z0-9._-]+)/gi); // yeah could be better
if (emailsArray) {
email = "";
for (var i = 0; i < emailsArray.length; i++) {
if (i != 0) email += separateEmailsBy;
email += emailsArray[i];
}
}
return email;
}
////////
</script>
</head>
<BODY>
<p><textarea id="t" rows="10" cols="50" class="textarea"></textarea><br /></p><br />
There are <input type="button" id="button1" value="0"> textareas
<pre id="p" class="pre"></pre>
</body>
</html>
非常感谢任何能帮助我的人
尝试设置return true;
相关文章:
- window.onload没有'无法在Android WebView中工作
- JavaScript-动态SVG-onload属性-未触发事件
- 在phonegap中为android调用onload函数的最佳方式
- image.onload事件和浏览器缓存
- 将函数从onclick修改为onload
- Combine onload, onresize and onclick
- onLoad function phonegap android
- 任何一种简单的方法都可以将带有onload的元素作为目标
- 如何调用表td标记内的Onload函数
- IE中的Onload()处理程序没有响应
- 预加载图像image.onload脚本MVC
- 不执行包含的页面的Javascript onload函数
- 你能停止window.onload函数吗
- 无法将java脚本函数与Panel'绑定;s OnLoad事件
- Jquery change onchange in onload
- window.onload适用于aspx页面,但不适用于普通html
- 使用多个JavaScript Onload函数
- jsimage.onload调用父对象上的方法
- 使用window.onload超过1次
- 如何将这个函数添加到现有的由onload / onpaste触发的Javascript中?