$.ajax用于组合页面上以前表单字段的输入-有些问题


$.ajax used to combine input from previous form fields on page - some issues

我正在尝试扩展PHPmyDirectory中的现有表单,我需要做的是使用表单中早些时候输入的信息来进一步自动填充一些字段,这样就不需要重新输入数据了。

例如:除非需要特定的内容,否则"stage Name"字段会自动填充"First Name"answers"Last Name Initial"的组合。

此代码:

$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)}});'));

生成:mary-l
如果有人在上方的first_Name/last_Name字段中键入Mary Lambert,则在舞台名称字段中输入onblur

这几乎很棒,但我需要它来简单地生成:Mary L(无连字符,无小写)

我是从一个生成友好URL的字段中提取这段代码的,所以我想这就是我使用小写字母和连字符的原因,我只是不知道是什么生成了格式。

我已经四处寻找了很多——我认为"/rewrite"/正在执行此操作,但在站点代码中找不到为"/rewrite"/分配函数的任何位置,所以这是标准的js命令吗?如果是这样的话,我是否应该使用另一个来获得我需要的输出格式?

有人能给我指一下输出一个字符串的写方向吗?这个字符串保持大写,并在我现在得到连字符的地方给我留白?

非常感谢。这可能是一个非常明显的问题,很抱歉。

不需要AJAX。只需使用javascript/jQuery。

我使用jQuery方法blur()来检测lastname字段何时空出。其余的应该是直接的。

AJAX在需要与后端服务器通信时使用,例如执行数据库查找,并将新数据插入当前页面。下面是一篇链接到一些简单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>