【问题标题】:Javascript - function doesn't get external input values from JQueryJavascript - 函数没有从 JQuery 获取外部输入值
【发布时间】:2020-02-14 14:54:16
【问题描述】:

我的sdk.php 文件中存储了以下函数:

<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script>
function saveObject(params) {
    console.log('p: ' + params);
}
</script>

在另一个 php 文件中 - index.php - 我调用该函数将输入值作为参数传递:

Text: <input type="text" name="aText" id="aText"><br>
Number: <input type="number" name="aNumber" id="aNumber"><br>
<script>
// Save object
var params = [
    'tableName=' + 'Test',
    '&ST_text=' + $('#aText').val(),
    '&NU_likes=' + $('#aNumber').val(),     
].toString().replace(/,/g, '');
</script>
<a class="btn btn-info" href="#" onclick="saveObject(params)">Save Object</a>

现在,如果我在 2 个输入文件中输入内容并点击 Save Object 按钮,这就是我在 Chrome 控制台中看到的内容:

p: tableName=Test&ST_text=&NU_likes=

为什么在我编写的字符串中没有得到aTextaNumber 值?

我问这个是因为如果我将 params 数组移动到 saveObject() 函数中,我会得到值。

我做错了什么?

【问题讨论】:

  • 您确实意识到 Javascript 不能在 .php 文件中运行??它只在 js 代码到达浏览器时运行
  • 构成params 的脚本仅在页面加载时运行一次。每当用户更改输入值之一时,它都不会重建。为此,您将需要输入的更改处理程序。否则,放弃更改处理程序,只需在方法中编写 params 对象。

标签: javascript php jquery server


【解决方案1】:

您的参数未定义,因为脚本仅在页面加载时执行。您需要在事件之后定义值,例如单击“保存对象”按钮。
试试这样的:

<a class="btn btn-info" id="saveButton" href="#">Save Object</a>

在 jQuery 中:

$("#saveButton").click(function () {
var params = [//define params here];
saveObject(params);
});

【讨论】:

    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多