JavaScript 重置 PHP/AJAX 中的填充字段
JavaScript reset populated field in PHP/AJAX
我有一些 jQuery 使用 AJAX 和 JSON 用数据填充 UL 标签。
这是jQuery代码:
$('#pSearch').on('click', function()
{
var partnername = $('#pNameSearch').val();
if($.trim(partnername) != '')
{
$.post('api/pNameSearch.php', {partnername: partnername}, function(data)
{
var obj = JSON.parse(data);
$('#pName').empty();
var htmlToInsert = obj.map(function (item)
{
return '<li>' + item.datestamp + ' - ' + item.comment + ' - ' + item.username + '</li>';
}).join('');
$('#pNames').html(htmlToInsert);
});
};
});
上面的代码填充了一个名为 pNames 的 UL 字段。它使用从 PHP 脚本中检索到的经过解析的 JSON 数据填充 LI 标记。
我现在需要做的是清除 pNames 字段。
我可能看错了,如果是这样,请告诉我。
在打印数据的搜索 window 中,我有一个 HTML RESET 按钮。
<input type="reset" class="btn btn-sm btn-default" id="pReset" name="pReset" value="reset" />
请注意输入字段中的 TYPE,我已设置为 'reset',将清除 FORM 字段,但不会清除填充数据的 UL 字段。
这是我试图用来清除字段的 JavaScript:
$('#pReset').on('click', function ()
{
document.getElementById('#pName').val("");
});
我认为很明显我遗漏了一些东西。
更新
既然你没有post你的代码让我们用这个简化的例子:
HTML:
<h3><code>pNames</code></h3>
<ul id="pNames">
</ul>
<div>
<button id="get-pnames">Get pNames</button>
<input type="reset" id="pReset" value="Reset pNames" />
<input type="reset" id="pClear" value="Clear pNames" />
</div>
JS
var yourOriginalAjaxCallbackLogic = function (obj) {
var htmlToInsert = obj.map(function (item) {
//console.log(
return '<li>' + item.datestamp + ' - ' + item.comment + ' - ' + item.username + '</li>';
}).join('');
$('#pNames').html(htmlToInsert);
};
$('#get-pnames').on('click', function (e) {
e.preventDefault();
// your additional logic for grabbing
// the pName and what not would go here
// note the last argument to $.post - this allows us to let jQuery
// take care of converting the json response
$.post('api/pNameSearch.php', {partnername: partnername}, function (data) {
yourOriginalAjaxCallbackLogic(data);
}, 'json');
});
// This version just removes the content of the LI items.
$('#pReset').on('click', function (e) {
e.preventDefault();
$('#pNames li').html('');
});
// This version removes all the LI items
$('#pClear').on('click', function (e) {
e.preventDefault();
$('#pNames').empty();
});
您可以在此处看到有效的 fiddle:http://jsfiddle.net/qhrmh3o1/1/
.val
仅用于表单输入。这些是 li
个元素,因此您可以使用 $('li').html('');
$('#pReset').on('click', function () {
$('#pName li').html('');
});
您可能需要修改该选择器,因为我不是 100% 确定选择器应该用于您要清除的 li
项目(或者如果您真的想删除它们或它们的 ul
来自 DOM).
所以,我将 UL 标签放在一个名为 masterdiv 的 DIV 中。
我更新了我的 javascript 如下:
$('#pReset').on('click', function ()
{
$('#masterdiv ul').text("");
});
这有助于清除名为 pNames 的 UL 字段。
我有一些 jQuery 使用 AJAX 和 JSON 用数据填充 UL 标签。
这是jQuery代码:
$('#pSearch').on('click', function()
{
var partnername = $('#pNameSearch').val();
if($.trim(partnername) != '')
{
$.post('api/pNameSearch.php', {partnername: partnername}, function(data)
{
var obj = JSON.parse(data);
$('#pName').empty();
var htmlToInsert = obj.map(function (item)
{
return '<li>' + item.datestamp + ' - ' + item.comment + ' - ' + item.username + '</li>';
}).join('');
$('#pNames').html(htmlToInsert);
});
};
});
上面的代码填充了一个名为 pNames 的 UL 字段。它使用从 PHP 脚本中检索到的经过解析的 JSON 数据填充 LI 标记。
我现在需要做的是清除 pNames 字段。
我可能看错了,如果是这样,请告诉我。
在打印数据的搜索 window 中,我有一个 HTML RESET 按钮。
<input type="reset" class="btn btn-sm btn-default" id="pReset" name="pReset" value="reset" />
请注意输入字段中的 TYPE,我已设置为 'reset',将清除 FORM 字段,但不会清除填充数据的 UL 字段。
这是我试图用来清除字段的 JavaScript:
$('#pReset').on('click', function ()
{
document.getElementById('#pName').val("");
});
我认为很明显我遗漏了一些东西。
更新
既然你没有post你的代码让我们用这个简化的例子:
HTML:
<h3><code>pNames</code></h3>
<ul id="pNames">
</ul>
<div>
<button id="get-pnames">Get pNames</button>
<input type="reset" id="pReset" value="Reset pNames" />
<input type="reset" id="pClear" value="Clear pNames" />
</div>
JS
var yourOriginalAjaxCallbackLogic = function (obj) {
var htmlToInsert = obj.map(function (item) {
//console.log(
return '<li>' + item.datestamp + ' - ' + item.comment + ' - ' + item.username + '</li>';
}).join('');
$('#pNames').html(htmlToInsert);
};
$('#get-pnames').on('click', function (e) {
e.preventDefault();
// your additional logic for grabbing
// the pName and what not would go here
// note the last argument to $.post - this allows us to let jQuery
// take care of converting the json response
$.post('api/pNameSearch.php', {partnername: partnername}, function (data) {
yourOriginalAjaxCallbackLogic(data);
}, 'json');
});
// This version just removes the content of the LI items.
$('#pReset').on('click', function (e) {
e.preventDefault();
$('#pNames li').html('');
});
// This version removes all the LI items
$('#pClear').on('click', function (e) {
e.preventDefault();
$('#pNames').empty();
});
您可以在此处看到有效的 fiddle:http://jsfiddle.net/qhrmh3o1/1/
.val
仅用于表单输入。这些是 li
个元素,因此您可以使用 $('li').html('');
$('#pReset').on('click', function () {
$('#pName li').html('');
});
您可能需要修改该选择器,因为我不是 100% 确定选择器应该用于您要清除的 li
项目(或者如果您真的想删除它们或它们的 ul
来自 DOM).
所以,我将 UL 标签放在一个名为 masterdiv 的 DIV 中。
我更新了我的 javascript 如下:
$('#pReset').on('click', function ()
{
$('#masterdiv ul').text("");
});
这有助于清除名为 pNames 的 UL 字段。