我正在尝试扩展PHPmyDirectory中的现有表单,我需要做的是使用表单中前面输入的信息来进一步自动填充某些字段,这样就不需要重新输入数据了。
例如: “阶段名称”字段将自动填充第一个姓名姓名的初始名称,除非需要特定的内容。
此代码:
$form->addField('last_name','text',array('label'=>'Last Name','fieldset'=>'listing',
'onblur'=>'$.ajax({data:({action:\'rewrite\',text:$(\'#first_name\').val()+ \' \'
+$(\'#last_name\').val().substring(0,1)}),success:function(text_rewrite)
{$(\'#stage_name\').val(text_rewrite)}});'));
生成:
玛丽-1
如果有人在上面的first_name / last_name字段中键入了Mary Lambert,则在舞台名称字段中显示onblur
这几乎很棒 - 但我需要它来简单地生成: Mary L(没有连字符,没有小写)
我从生成友好URL的字段中选择此代码,所以我想这就是为什么我得到小写和连字符,我只是无法弄清楚什么是生成格式化
我已经看了很多 - 我假设'/ rewrite'/正在这样做,但是我找不到站点代码中的任何地方为'/ rewrite'指定一个函数/所以这是一个标准js命令?如果是这样,我应该使用另一个来获取我需要的输出格式吗?
有人能指出我在写方向上输出一个保持大写字母的字符串并给我一个空白区域,我现在得到连字符吗?
非常感谢。这可能是一个非常明显的问题,很抱歉。
答案 0 :(得分:1)
那里不需要AJAX。只需使用javascript / jQuery。
我使用jQuery方法blur()
来检测lastname字段何时腾空。其余的应该是直截了当的。
当您需要与后端服务器通信(例如执行数据库查找)并将新数据插入当前页面时,将使用AJAX。 Here is a post链接到一些简单的AJAX示例。
$('#ln').blur(function(){
var fn = $('#fn').val();
var ln = $('#ln').val();
if (fn.length && ln.length){
var sn = fn + ' ' + ln; //full name (not used, just for e.g.)
var sn2 = fn + ' ' + ln.slice(0,1); //first name, last name first letter only
$('#sn').val(sn2);
}
});

#d1{height:100px;width:250px;}
#d2{height:100px;width:250px;background:wheat;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="d1">
First Name: <input id="fn" type="text" /><br>
Last Name : <input id="ln" type="text" />
</div>
<div id="d2">
Stage Name: <input id="sn" type="text" />
</div>
&#13;