1

我有一个 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>
4

1 回答 1

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();
    });
});

http://api.jquery.com/jQuery.data/

http://api.jquery.com/attr/

于 2013-06-07T12:53:57.107 回答