我想要大写每个来自Sql的选项值。 现在,以下代码工作正常 - 但只在第一个字段...
function capitalize(str){
var text = str.text().replace(/^(.)|\s(.)/g, function($1){ return $1.toUpperCase( ); });
return str.text(text);
}capitalize($('#op'));
我的Html字段看起来像这样(我正在使用PUG / JADE,这是我最好尝试转换为演示目的):
<select class="select_input">
<option value=$emp['id'] id="op" selected="selected">$emp['value']</option>*
<?php foreach ($type as $type_val) ?>
<option value=$type_val['id']>$type_val['val']</option>
<?php endforeach?>
<select class="select_input">
<option value=$emp['id'] id="op" selected="selected">$emp['value']</option>*
<?php foreach ($type as $type_val) ?>
<option value=$type_val['id']>$type_val['val']</option>
<?php endforeach?>
正如我之前提到的,脚本只在第一个字段上运行...
答案 0 :(得分:1)
您以错误的方式使用id
。每个id对于html页面必须是唯一的。
// will work only for first object
capitalize($('#op'))
尝试使用类
<select class="select_input">
<option value=$emp['id'] id="op" class="option" selected="selected">$emp['value'] </option>*
<?php foreach ($type as $type_val) ?>
<option value=$type_val['id'] class="option">$type_val['val']</option>
<?php endforeach?>
capitalize($(".option"))
答案 1 :(得分:0)
你可以只使用CSS来大写每个下拉项:
#op > option {
text-transform: capitalize;
}
答案 2 :(得分:0)
得到它......不幸的是服务器端没有其他方式
public function capitalize($arr)
{
foreach ($arr as $key => $val) {
$data[$key] = ucfirst($val);
}
return $data;
}//end capitalize()