Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击“提交”按钮时,文本框不会清除_Javascript_Php_Html - Fatal编程技术网

Javascript 单击“提交”按钮时,文本框不会清除

Javascript 单击“提交”按钮时,文本框不会清除,javascript,php,html,Javascript,Php,Html,单击继续按钮后,我试图清除txtSubTotal文本框。虽然我尝试了一些代码示例,但它不起作用,即使是在这样的情况下 btnproced/HTML <input type="submit" name="btnProceed" id="btnProceed" value="PROCEED" onclick="clearSubTotal();"/> <form id="manageSalesForm" name="manageSalesForm" method="post" a

单击
继续
按钮后,我试图清除
txtSubTotal
文本框。虽然我尝试了一些代码示例,但它不起作用,即使是在这样的情况下

btnproced/HTML

<input type="submit" name="btnProceed" id="btnProceed" value="PROCEED" onclick="clearSubTotal();"/>
 <form id="manageSalesForm" name="manageSalesForm" method="post" action="<?php echo BASE_URL?>includes/functions/sales_functions.php">
<td width="46"><button type="button" name="btnSave" id="btnSave" onclick="submitdata(); check_qty(); showSubTotal();">ADD</button></td>
txtSubTotal

<input name="txtSubTotal" type="text" id="txtSubTotal" size="15" value="<?php 
$sql=mysqli_query($connection,"select sum(amount) from sales_temp");
$row = mysqli_fetch_array($sql);
echo $row[0];
?>"/>
添加按钮/HTML

<input type="submit" name="btnProceed" id="btnProceed" value="PROCEED" onclick="clearSubTotal();"/>
 <form id="manageSalesForm" name="manageSalesForm" method="post" action="<?php echo BASE_URL?>includes/functions/sales_functions.php">
<td width="46"><button type="button" name="btnSave" id="btnSave" onclick="submitdata(); check_qty(); showSubTotal();">ADD</button></td>
添加
sales_functions.php

<?php

//Start the Session
       if(!isset($_SESSION)) 
       { 
           session_start(); 
       } 

include ("/../../pages/sales.php");
include("/../../dbutil.php");

 if(isset($_POST['listCustomer'])){ $customer = $_POST['listCustomer'];}
 if(isset($_POST['staff'])){ $user = $_POST['staff']; }

if(isset($_POST['btnProceed'])){

$result=mysqli_query($connection, 
"INSERT INTO sales(cus_id,item_id,stock_id,receipt_no,qty,unit_price,amount,user_id,purchase_id) 
 SELECT C.cus_id, I.item_id, S.stock_id, $receipt_no, ST.qty, ST.unit_price, ST.amount, U.id, P.purchase_id 
FROM customers C, items I, stock S, sales_temp ST, users U, purchase_items P 
WHERE ST.staff='$user' 
AND C.customer_name='$customer' 
AND I.item_name=ST.item_name 
AND S.stock_code=ST.stock_code 
AND ST.purchase_id=P.purchase_id");


//Update available qty from purchase_items relevant only to the logged in user(sales_temp table may have records from multiple users)
$resultUpdate=mysqli_query($connection, "UPDATE purchase_items P INNER JOIN sales_temp ST ON (P.purchase_id = ST.purchase_id) SET P.avail_qty = (P.avail_qty - ST.qty) WHERE ST.staff='$user'");

//Delete records relevant only to current user. Here 'WHERE' clause use to prevent deleting other user's records.
$resultDelete=mysqli_query($connection, "DELETE FROM sales_temp WHERE staff='$user'");


if (!$result) {
  printf("Errormessage: %s\n", mysqli_error($connection));
}

// use exec() because no results are returned
if ($result) {

}
else
{
  echo '<script type="text/javascript">',
 'salesAddFail();',
'</script>';
}}
?>

单击提交按钮后,表单将被提交,而您的自定义功能将不会执行

从输入元素中删除onclick并编辑jQuery代码:

$('#btnProceed').click(function(event) {
  event.preventDefault(); // stops form submission
  $('#txtSubTotal').val('');
});

您可以在您的浏览器中试用:

它非常适合我。单击“提交”后,它可能对您有效,但同时页面将被重定向到新操作

我找到了解决方案,添加了
do\u onload(id)
以计算每次刷新后触发的
loadComplete
事件的总数(也是在删除之后)

并相应地更改了phpgrid代码

$opt["loadComplete"] = "function(ids) { do_onload(ids); }";
$grid->set_options($opt);

您的
表单
元素的
操作
属性设置为什么?最有可能的情况是,在提交之后,会重新加载相同的页面,并重新建立.php中的默认值。如果您正确设置表单的
操作
,则无需手动清除字段。@ScottMarcus我为
表单
添加了HTML代码。您的
具有属性
value=”“
。因此,每当页面加载时,这将是
@Rounin的值。您是否知道如何在提交按钮后重置文本框,并在之后通过调用该事件获取文本框值。@EKBG如果要重新填充表单字段,为什么要先清除它呢?在第二次按下
继续
按钮时,它会清除文本框。如何在第一次单击时清除文本框?通过添加console.log进行检查以调试。。它应该在第一次单击only时调用。您可以按照您的建议,通过编辑我的代码来帮助我解决这个问题。'function clearSubTotal(){$('#txtssubtotal').val('')}“**希望这将对您有所帮助在上面的代码片段中,您将能够看到文本框在很短的时间内变为空intervalI复制了代码并在localhost上运行,这对我很有用。您的代码正在提交表单,因此关键是添加event.preventDefault()方法。你可以更具体一点,或者把整个代码复制到这里,或者复制到jsfiddle上吗?这是一个完美的版本,你自己试试看:(PHP代码不在那里运行,但这并不重要)。我为我所做的改变写了评论。让我知道它是否有效。运气不好。仍然有同样的问题,尽管小提琴很管用。希望我有任何不兼容的代码。它到底在做什么?刷新页面?显示错误?例如,您是否可以检查控制台输出是否存在任何JS错误?页面刷新,但小计未清除。当第二次单击“继续”时,它将清除。控制台中没有错误,我的错误。