我正在寻找有关以下问题的一些指导。我正在尝试从玉视图将字符串传递到服务器。 val正在前端返回,但是当我尝试将它存储在对象中时,我将被返回[object Object]
。
我相信它正在打破参数变量,但我无法理解为什么。
$(function(){
$('#search').on('paste', function(){
console.log('key up');
setTimeout(function () {
var linkURL = $('#search').val();
console.log(linkURL)
// EVERYTHING BREAKS HERE
var parameters = { search: $(this.target).val() };
console.log('p' + parameters)
$.get( '/searching',parameters, function(data) {
$('#results').html(data);
});
}, 100);
});
});
查看
extends layout
block content
.container
h1 London Plans
form(method='post' action='/submit', class='plans', id='plans')
.form-group
label Do you have a link?
input.form-control(name='search', id='search' type='text', required='required')
我认为快速代码是正确的,console.log
返回undefined
,假设因为对象已损坏。
app.get('/searching', function(req, res){
// input value from search
var val = req.query.search;
console.log('val equals =' + ' ' + val);
// testing the route
// res.send("WHEEE");
});
非常感谢任何正确调试对象的指针。
答案 0 :(得分:1)
尝试将var parameters = { search: $(this.target).val() };
替换为var parameters = { search: $('#search').val() };
。 this
内的setTimeout()
变量指的是this
内on()
以外的不同对象。
您可以将{ search: $(this.target).val() }
替换为{ search: linkURL }
,因为您已将$('#search').val()
的结果保存到linkURL
。
另请参阅on()函数的jQuery API:http://api.jquery.com/on/
示例使用this
指针"因为它是"而不是写this.target
。例如,在您的情况下,您可以写:$(this).val()
而不是$(this.target).val()
。将行var linkURL = $('#search').val();
移到setTimeout
行上方并将其更改为var linkURL = $(this).val();
。然后将{ search: $(this.target).val() }
替换为{ search: linkURL }
。
(this.target
是从事件对象获取目标元素的方法,但在这里我们没有。)