我想创建一个从输入文本中提取电子邮件地址的表单,
我知道有很多脚本很容易做到这一点,但我想自己创建一个。
所以我阅读,搜索和尝试,但我看不到结果。这是我的代码,有什么问题?
<html>
<head>
<script type="text/javascript">
function extractEmails ( text ){
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
}
// EXAMPLE #1
var emails = extractEmails ( HugeListWithBulkTextIncludingEmailAddresses );
document.write ( emails.join('\n') );
// EXAMPLE #2 (jQuery)
$(function(){
$('#eform').submit(function(){
$('#extractedemails').val( extractEmails($('#input').val() ).join('\n'));
return false;
});
});
</script>
</head>
<body>
<form name="myform" id="eform" action="javascript:extractEmails()">
<input type="text" name="firstname">
<input name="Submit" type="submit" value="Update"/>
</form>
<textarea id="extractedemails">
</textarea>
</body>
</html>
答案 0 :(得分:1)
我建议你应该使用它:
onsubmit="return extractEmails()"
因为我注意到你的提交按钮没有调用你的功能。
而不是:
action="javascript:extractEmails()"
尝试此表单时,您的输入字段也应该有id
:
<form name="myform" id="eform" onsubmit="return extractEmails()">
<input type="text" name="firstname" id = "input">
<input name="Submit" type="submit" value="Update"/>
</form>
下面是我创建的一个小程序,我不太确定你想要在你的功能中实现什么,但希望这可能对你有所帮助。 :)
<html>
<head>
<script type="text/javascript">
function extractEmails(){
var input = document.getElementById('input').value;
input.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
var textarea = document.getElementById('extractedemails');
textarea.value = input;
}
</script>
</head>
<body>
<form name="myform" id="eform" onsubmit = "return extractEmails()">
<input type="text" name="firstname" id = "input">
<input name="Submit" type="submit" value="Update"/>
</form>
<textarea id="extractedemails">
</textarea>
</body>
</html>
它基于您的html
快乐编码:D