0

我想创建一个从输入文本中提取电子邮件地址的表单,我知道有很多脚本很容易做到这一点,但我想自己创建一个。
所以我阅读、搜索和尝试,但我看不到结果。这是我的代码,有什么问题?

<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>
4

1 回答 1

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

于 2013-10-30T12:31:09.690 回答