2013-04-29 61 views
1

我使用Bootstrap推荐的电话表单助手来验证文本框内的电话号码。验证按预期工作,但我在设置文本框的默认值时遇到了一些麻烦。这是加价我用:引导电话表单助手默认值

<input type = "text" class = "bfh-phone" data-format = "(ddd) ddd-dddd" 
id = "phone" value = <?php echo $phone; ?>> 

我的PHP $手机变量是一个10位数的非格式化数字

$phone = 1234567890; 

不幸的是,上面没有显示为我输入一个默认值框。如果我从输入元素中取出'class'和'data-format'属性,则默认值按预期显示。

我试着根据数据格式属性的行格式化我的$ phone变量。

IE:

$phone = (123) 456-7890; 

但没有骰子。在这种情况下,如何使用PHP变量设置默认值?

+0

您是否错过了输入结尾的右括号?也可以在变量周围加上单引号,例如value ='<?php echo $ phone; ?>' - 不确定单引号,因为我没有真正做php,但它可能会有所帮助。 – 2013-04-29 14:52:25

+0

@BillyMoat我是,但是从我原来的代码复制和粘贴时没有找到。我已经尝试在PHP调用中加入引号,但结果相同 – 2013-04-29 15:06:19

+0

如果您将PHO实际放置在页面上而不是放在表单元素中,PHO变量是否会出现在页面上只是在一个段落标签或东西? – 2013-04-29 15:08:29

回答

6

它似乎必须在输入字段中设置一个“value”属性以及一个“数据编号”属性,以便实际显示在该字段中的数字。可以在bootstrap formhelper网站上看到一个示例 - http://vincentlamanna.com/BootstrapFormHelpers/phone.html - 显示值时<范围内的>标记。

+2

每隔一段时间,没有积分的人会回答一个被问了很多天的问题前。起初,我对答案的价值充满忧虑。但后来我意识到这个人提供了一些既有洞察力又有价值的东西;并且我对人类的信仰得到恢复 – 2013-05-28 16:02:05

+0

谢谢劳埃德,非常感谢。 – MichaelJTaylor 2013-05-30 09:39:22

0

你也可以通过修改插件来解决这个问题。

打开自举-formhelpers-phone.js文件,进入线175和插入这行代码:

if ($phone.val() != "") $phone.data("number", $phone.val()) 

整个代码块到插件是:

/* PHONE DATA-API 
    * ============== */ 

    $(window).on('load', function() { 
    $('form input[type="text"].bfh-phone, form input[type="tel"].bfh-phone, span.bfh-phone').each(function() { 
     var $phone = $(this) 
     if ($phone.val() != "") $phone.data("number", $phone.val()) 
     $phone.bfhphone($phone.data()) 
    }) 
    })