Jquery - 没关系放弃前导零,我该如何保留它?

时间:2013-06-07 12:33:52

标签: jquery

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

1 个答案:

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

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

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