我有一个jquery驱动的删除确认脚本,它将值插入隐藏的表单字段并触发php删除脚本。
echo "<a class='delete' href='#' onclick='document.delAccForm.delAcc.value = ". $row['AccountNumber']."; document.delAccForm.delMyID.value = ". $row['MyID']."; document.delAccForm.delAccID.value = ". $row['AccountID'].";'>Delete</a>";
表格如下:
<form method="post" name="myform">
<input type="hidden" name="AccountID" value="<?php echo $out['AccountID']; ?>" />
<input type="hidden" name="MyID" value="<?php echo $out['PropertyID']; ?>" />
<input type="hidden" name="formVar" value="">
</form>
一切正常,但某些条目无法删除,在调查中我发现任何以0开头的帐号都会被截断为0以上的第一个数字。这可能是浏览器操作或Jquery将数字视为值,如何强制它将其视为字符串。
我已经尝试过这种格式,没有成功,这个产生的html非常混乱。
<a class='delete' href='#' onclick='document.delAccForm.delAcc.value = '". $row['AccountNumber']."'; document.delAccForm.delMyID.value = '". $row['MyID']."'; document.delAccForm.delAccID.value = '". $row['AccountID']."';'>Delete</a>
答案 0 :(得分:3)
修改强>
我想我现在更了解你的问题了。您拥有由PHP创建的HTML链接,并且您希望能够根据特定于该链接的值更新隐藏的HTML表单的值。然后,您希望在单击该链接时提交表单以执行服务器端处理。当您设置表单的值时,正在修剪前导0,所以问题是如何防止这种情况。
HTML + PHP
使用自定义data
属性来构建您的锚点,如下所示:
echo '<a class="delete" href="#" data-account-number="'.$row['AccountNumber'].'" data-account-id="'.$row['AccountId'].'" data-my-id="'.$row['MyId'].'">Delete</a>';
<强>的jQuery / JavaScript的强>
然后使用此jQuery将点击侦听器附加到所有delete
个锚点。请注意,我使用的是attr()
函数,而不是data()
。 data()
将尝试解释数据类型并为您投射,在这种情况下,将您的ID转换为数字并修剪前导0。使用attr
将确保您使用字符串:
$(function() {
$('a.delete').on('click', function(e) {
var that = $(this);
$('#delAcc').val(that.attr('data-account-number'));
$('#delMyID').val(that.attr('data-my-id'));
$('#delAccID').val(that.attr('data-account-id'));
$('form[name="myform"]').submit();
});
});