我有以下问题:
我有一个我需要序列化的表单,但我使用javascript来改变选择字段的外观.这意味着,使用display:none隐藏实际选择字段.我的问题是,jQuery确实识别隐藏的选择,但只序列化第一个值而不是选定的值.
<select name="publish">
<option value="1">yes</option>
<option value="2" selected="selected">no</option>
</select>
jQuery.serialzie:publish = 1
所以它给了我第一个而不是正确的价值.
任何解决方法的想法?
解决方案
好吧,正如RobW所提到的,最好的解决方案可能就是让JavaScript通过设置选择你想要的选项selectElement.selectedIndex = 5
然而,我的解决方案有点不同,因为我不想更改用于更改选择外观的插件,因为维护问题(例如,每次发布新版本时都需要更改脚本).我只是使用自定义函数进行序列化.
(function($) {
$.fn.serializer = function() {
var toReturn = [];
var elements = $(this).find(':input').get();
$.each(elements, function() {
if (this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password/i.test(this.type)))
{
var val = $(this).val();
// if is select, check selected
if(this.nodeName == "SELECT")
{
val = $(this).find('option:selected').val();
}
toReturn.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( val ) );
}
});
return toReturn.join("&").replace(/%20/g, …Run Code Online (Sandbox Code Playgroud) 我的codeigniter库有问题.要将数据库数据转换为导航并具有活动元素,例如我构建了一个库类CI_Navigation().它工作得很好,我只有一个问题.
通常在网页上,人们具有相应但分离的导航,例如顶部的主导航和侧面的导航.为了解决这个问题,我可以用一个参数初始化我的类,告诉它该导航要保持哪个级别.我会做这样的事情.
$this->load->library('Navigation');
$main = $this->navigation->build( array('levels'=>array(0)) );
$sub = $this->navigation->build( array('levels'=>array(1,2)) );
Run Code Online (Sandbox Code Playgroud)
正如您所料,它不起作用,因为类中的数据保持了第一次调用构建时分配的方式.
令人遗憾的是CodeIgniter库中有单例(对吗?这就是我所读的).所以我不能将它初始化两次,如:
$this->load->library('Navigation','','main');
$this->load->library('Navigation','',sub);
Run Code Online (Sandbox Code Playgroud)
你知道我怎么能克服这个问题吗?
如果我将数组用于类中使用的变量,它应该工作吗?例如,对于选项而不是使用$ this->选项,我必须动态创建$ this - > $ option [0],$ this - > $ option [1].
这有用吗?我现在无法测试它,但今晚会这样做.但这不是一种非常优雅的方式,那么有更好的方法来解决这个问题吗?有什么方法可以多次初始化库吗?
先谢谢你们.
我确实看到一些测试表明id和类选择器($(#id); $(.class))比jquery慢.
我在想:
我正在考虑切换到桌面应用程序的zepto,因为我只需要现代webkit和firefox支持.
谢谢
我试图通过travis-ci运行phpspec.
规格在我的本地机器上运行正常,但在travis上它找不到phpspec文件.
0.01s$ bin/phpspec run -v
/home/travis/build.sh: line 41: bin/phpspec: No such file or directory
The command "bin/phpspec run -v" exited with 127.
Run Code Online (Sandbox Code Playgroud)
我的travis.yml看起来像这样:
语言:php
php:
- 5.4
- 5.5
- 5.6
before_script:
- composer self-update
install:
- composer install --prefer-source --no-interaction --dev
script:
- bin/phpspec run -v
Run Code Online (Sandbox Code Playgroud)
我的作曲家是这样的
"require": {
"php": ">=5.4.0",
"illuminate/support": "4.2.*",
"guzzlehttp/guzzle": "~4.0"
},
"autoload": {
"psr-0": {
"..."
}
},
"minimum-stability": "stable",
"require-dev": {
"phpspec/phpspec": "2.0.*@dev"
}
Run Code Online (Sandbox Code Playgroud)
有关如何使其工作的任何想法?
我想将一个别名放到一个固定的文件夹中,即将iWorks模板文件夹放入DMG中.
目录是
/Users/USERNAME/Library/Application Support/iWork/Pages/Templates/My Templates
Run Code Online (Sandbox Code Playgroud)
我的问题是,我想把它放到DMG中,以便人们可以轻松安装模板.但是,虽然它与Application文件夹一起正常工作,但模板文件夹中始终包含我的用户名.因此,如果其他人打开它,别名用我的用户名指向dir,当然在不同的mac上不存在.
有谁知道如何解决它?
谢谢.
将所有评论结合到下面,我得到了一个按我想要的方式工作的液滴.
on open thefiles
set outputFolder to (path to application support folder from user domain as text) & "iWork:Pages:Templates:My Templates:"
do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder
tell application "Finder"
duplicate thefiles to outputFolder
end tell
end open
Run Code Online (Sandbox Code Playgroud)
问题是,虽然它可以在我的Mac上运行,但我不能在DMG文件中使用它.我不能拖动任何东西.有任何想法吗?
谢谢到目前为止.
我正在考虑从自动加载文件中删除数据库库.我正在缓存页面上的所有内容,所以我不需要每次都连接到数据库,如果我有CI连接到数据库,我认为这是浪费速度.
我的问题现在是:如果我用例如在$this->load->database()没有参数的MY_Model中加载数据库(它们来自配置文件),是否会为我在控制器中使用的每个模型建立新连接?
或者它会像只加载一次的助手一样?
我正在尝试执行以下操作.
当我尝试使用oAuth访问服务时,如果我收到错误,因为我使用了错误的密钥,我想不显示错误消息,而是将用户发送到身份验证页面.
但是使用try catch fn不起作用.
这是我的代码:
$url = 'https://api.soundcloud.com/me.json?'.http_build_query(array(
'oauth_token' => $token,
));
//
try{
$user = json_decode(file_get_contents($url));
return array(
'uid' => $user->id,
'nickname' => $user->username,
'name' => $user->full_name,
'location' => $user->country.' ,'.$user->country,
'description' => $user->description,
'image' => $user->avatar_url,
'urls' => array(
'MySpace' => $user->myspace_name,
'Website' => $user->website,
),
);
}
catch(Services_Soundcloud_Invalid_Http_Response_Code_Exception $e)
{
log_message('error', 'EXCEPTION: '.$e);
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
我希望这可以返回用户数组或FALSE.
有任何想法吗?