Javascript 仅在手动输入值时工作

Javascript 仅在手动输入值时工作,javascript,Javascript,为什么这个代码不起作用。但当im手动插入var nm2=budi的值时;它起作用了 <div> Date From: <input id="date1" class='easyui-datebox' style='width:150px'> To: <input id="date2" class='easyui-datebox' style='width:150px'> Nama <input id="nama" style='width:150px'

为什么这个代码不起作用。但当im手动插入var nm2=budi的值时;它起作用了

<div>
Date From: <input id="date1" class='easyui-datebox' style='width:150px'>
To: <input id="date2" class='easyui-datebox' style='width:150px'>
Nama <input id="nama" style='width:150px' class="easyui-validatebox">
<a href='#' id="aaa" class='easyui-linkbutton' iconCls='icon-search'>Cari</a>
</div>

我想这是因为当脚本加载时,您正在为nm2赋值。我想当你点击提交时,你会想要分配它

$('#aaa').click(function(){
nm2=$('#nama').val();
$('#query').datagrid('options').url="getjson.php?names="+nm2+"&start_date="+d1+"&end_date="+d2;
$('#query').datagrid('reload');
})

这至少会让你走上正轨。

为什么要在你的函数之外声明它

如果在任何情况下,您想将该var nm2用作全局var,您可以这样做

var nm2;

$('#aaa').click(function(){ 
    nm2 = $('#nama').val();
    $('#query').datagrid('options').url="getjson.php?&names="+nm2+"&start_date="+d1+"&end_date="+d2;
    $('#query').datagrid('reload');
})

很抱歉,这不是一个完整的代码,请自己试试。

为什么javascript代码没有包装在标记中?是否有DOM修改javascript?除此之外,还有行var nm2=$'nama'.val;在设置nama值之前,在页面加载时运行一次。所以,你会得到像getjson.php?&names=&start_date=…是的,我使用easyui DataGrid这是输入的初始值,你应该在click事件中获得值。是的,我想在提交按钮时用id=nama从输入中分配值,而你的代码在我的情况下仍然不起作用:@kidboy90嘿,对不起,这对你不起作用,你的疑问是否被提出了?我已经整理了一个例子,展示了如何在纯JS中实现它。它现在可以工作了,很抱歉我的url=getjson.php?&names=它应该是url=getjson.php?names=thx很多人:DNo.mate。。萨拉姆·基纳尔!
var nm2;

$('#aaa').click(function(){ 
    nm2 = $('#nama').val();
    $('#query').datagrid('options').url="getjson.php?&names="+nm2+"&start_date="+d1+"&end_date="+d2;
    $('#query').datagrid('reload');
})