CodeIgniter的JQuery UI对话框错误
JQuery UI dialog bug with CodeIgniter
在使用JQuery对话框时,尝试动态更改PHP/CI的输入值时,我遇到了一些麻烦。
下面是视图中的相关代码:
<span id="emailDialog" hidden>
<?php
echo form_open('', array('id' => 'emailForm'));
if (isset($this->session->userdata)){
$name = $this->session->userdata('firstName') . ' ' . $this->session->userdata('lastName');
$email = $this->session->userdata('email');
} else {
$name = '';
$email = '';
}
echo form_input(array(
'id' => 'name',
'name' => 'name',
'value' => $name,
'placeholder' => 'Name'
));
echo form_input(array(
'id' => 'email',
'name' => 'email',
'value' => $email,
'placeholder' => 'Email'
));
echo form_textarea(array(
'id' => 'message',
'name' => 'message',
'cols' => 35,
'rows' => 15,
'value' => '',
'placeholder' => 'We look forward to hearing from you!'
));
echo form_close();
?>
<span id="mailErrors"></span>
和JavaScript/JQuery(1.10.3)代码:
function loginForm() {
$('#login').dialog({
autoOpen: false,
height: 450,
width: 300,
position: ['center-top'],
show: 'fade',
title: 'Login',
modal: true,
buttons: {
Login: function () {
validateCredentials();
},
'Sign Up': function() {
loadRegister();
}
}
});
$('#login').dialog('open');
}
发生的事情是,如果我完全绕过PHP代码,名称输入的值仍然是",允许"占位符"显示,但是,当使用PHP代码并且没有设置userdata时,名称输入字段(应该是空白的)有一个空格,导致没有占位符出现(并且由于我使用占位符代替标签,导致混淆输入的目的,尽管它应该是显而易见的);如果设置了userdata,则按预期填充姓名和电子邮件值,没有不良行为。
我试过了:
**实例化if语句外的空白变量,位于else子句之前。
**包装JavaScript来改变PHP if语句中的值,例如…
<?php if(isset($this->session->userdata)): ?>
<script type="text/javascript">
$('#name').val("<?php echo $this->session->userdata('firstName') ?>");
$('#email').val("<?php echo $this->session->userdata('email') ?>");
</script>
<?php endif; ?>
…以及上面的其他变体(.text()而不是。val(),从。val()中删除引号,以及另一件我现在完全没有注意到的事情)。
我做了一些研究,发现在1.11.0中有一些对话框小部件的错误修复,但不能(明确地)看到这个特定的问题得到解决。
我知道这是相当无关紧要的,但我可以向你保证,这是令人难以置信的讨厌。所以,我真的很想知道是否有人遇到这个问题(并可能修复它),或者如果有人可以提出任何建议,以修复/解决方案。
谢谢!- j
看起来空白是由于您的会话,:D:
if (isset($this->session->userdata)){
$name = $this->session->userdata('firstName') . ' ' . $this->session->userdata('lastName');
$email = $this->session->userdata('email');
} else {
$name = '';
$email = '';
}
不知怎么的,你用空值设置会话,这就是为什么$name得到' ',XD, CI给你返回两个假(firstName和lastName),它们之间有一个空格字符。
你能检查一下吗?
相关文章:
- jQuery UI对话框错误,按钮导致HierarchyRequestError
- 在引导盒对话框中使用 Blaze.render - 得到奇怪的错误
- 动态创建的 jQuery UI 对话框错误后 jQuery 2.2.0 升级
- 检查对话框是否为 Open 会引发“初始化前无法在对话框上调用方法”错误
- 动手错误:在 jquery UI 中启动时,对话框是不可编辑的
- 生成对话框angularjs时出现DialogProvider错误
- JQUERY对话框未捕获错误:初始化之前无法调用对话框上的方法
- Facebook发送对话框类型错误
- 将html保存为xls-JS保存对话框错误
- “Jquery”对话框错误
- jquery 中的对话框错误
- Jquery 对话框错误:初始化前无法在对话框上调用方法;尝试调用方法“关闭”
- jQueryUI 对话框错误
- 第二次打开对话框时jQuery对话框错误-TypeError:oa不是函数
- Iframe应用程序JavaScript SDKpublish对话框错误(代码102)
- Facebook (JavaScript)邮件权限对话框-错误
- Facebook Feed对话框错误191
- facebook appequests对话框错误“;出现错误.请稍后再试&”;
- iPhone Javascript确认对话框错误
- CodeIgniter的JQuery UI对话框错误