【问题标题】:Passing a form variable from HTML to Javascript, but with quotes将表单变量从 HTML 传递到 Javascript,但带有引号
【发布时间】:2016-02-12 22:56:13
【问题描述】:

我正在尝试将电子邮件地址从 HTML 表单传递到 javascript sn-p 以传递给另一个程序。

表单输入:

<input name="email" placeholder="Enter Email Address Here" type="email" required="required" id="email_input">

这是我正在寻找的示例,请注意引号。 为了让电子邮件通过,它必须在引号内。

<script type="text/javascript">
test({

  email: "example@example.com", 

});
</script>

这是我尝试过的:

<script type="text/javascript">
test({

  email: "document.getElementById("email_input");", 

});
</script>

如果我使用像 example@example.com 这样的静态值,一切都会按预期工作。我无法弄清楚如何将电子邮件输入字段中的值传递给“电子邮件:”javascript并让它通过。

这是我需要的:我在其中的 document.getElementById("email_input"); 不起作用,应该是什么?

我知道我在这里遗漏了一些简单的东西,只是不确定是什么。

提前致谢!

【问题讨论】:

  • ... 您需要什么并不完全清楚。如果您只需要一个字符串值,则省略周围的引号。如果您明确需要 json 字符串,则将对象转换为 json。
  • 该“测试”功能应该何时运行?是否与输入元素在同一页面?
  • 你只需要传递输入值或者你需要像带引号的字符串一样传递输入值?

标签: javascript html forms email


【解决方案1】:

如果您只是尝试使用 test 对象传递电子邮件输入的值,这就是您所需要的。

var emailString = document.getElementById("email_input").value;
test({

  email: emailString, 

});
</script>

您想先获取输入的值,然后将其作为字符串传递(假设您需要第一个示例中的字符串)

【讨论】:

    【解决方案2】:

    有两种方法可以从其他类型的元素(DOM 元素、数字、数组...)获取字符串:

    <script type="text/javascript">
        var elmt = document.getElementById("email_input");
    
        var str1 = elmt.toString();
        var str2 = elmt + "";
        // alert(str1); and alert(str2) will pop the same result : a string of elmt
    </script>
    

    所以如果你想将整个输入作为一个字符串,你应该这样做:

    <script type="text/javascript">
    test({
    
      email: document.getElementById("email_input") + '' 
    
    });
    </script>
    

    如果您只想将输入值作为字符串(所以电子邮件),您应该这样做:

    <script type="text/javascript">
    test({
    
      email: document.getElementById("email_input").value + '' 
    
    });
    </script>
    

    如果你真的需要在字符串中添加引号,你也可以这样做:

    <script type="text/javascript">
        var str= "this is my string";
        var withquote= ' " ' + str + ' " ';
    
        //both of the var return a string but one will have a quote and the other won't
        alert(str); // pop: this is my string
        alert(withquote); // pop "this is my string"
    </script>
    

    所以在你的情况下:

    如果您希望将整个输入作为带引号的字符串,您应该这样做:

    <script type="text/javascript">
    test({
    
      email: ' " ' + document.getElementById("email_input") + ' " ' 
    
    });
    </script>
    

    如果您只想将输入值作为带有引号的字符串(所以电子邮件),您应该这样做:

    <script type="text/javascript">
    test({
    
      email: ' " ' + document.getElementById("email_input").value + ' " ' 
    
    });
    </script>
    

    希望我已经说清楚了 随意问我是否不是

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-14
      • 2015-05-29
      • 2013-11-07
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      相关资源
      最近更新 更多