首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一个复杂的有关问题,多步

2012-09-01 
一个复杂的问题,多步先贴代码tr classtr_data1td公司名称/tdtdselect namecompanyName siz

一个复杂的问题,多步
先贴代码

<tr class="tr_data1">
  <td>公司名称</td>
  <td><select name="companyName" size="1" style="position:absolute; left: 237px; top: 85px; width: 220px; height: 20px;
  clip: rect(0 237 18 200)" onchange="company_name.value=companyName.value; company_name.select()">
  <%
  for(Iterator iter = list.iterator(); iter.hasNext(); ) {
  piv = (PropertyInfoView)iter.next();
  %>
  <option value="<%=piv.getId() %>"><%=piv.getCompanyName() %></option>
  <%
  } 
  %>
  </select><input type="text" size="35" name="company_name" style="position:absolute; left: 237px; top: 85px; width: 220px; height: 18px"></td>
</tr>

-----------------------------

输入框 下拉框在一起 ,下拉的数据读取的是数据库 

现在:company_name.value=companyName.value

上面这句话显示的是 前面的id,我想显示select中间的值,改如何解决?

问题2 :现在可以保存,选择下拉的话。

但要是输入的话,输入的公司还保存不上,只能默认保存 下拉默认选中的。


问题3:input输入 如何 显示 数据库里面相关的信息,并 在下拉显示











[解决办法]
问题1:
onchange="company_name.value=companyName.value; company_name.select()"
改一下吧:
onchange="company_name.value=renderInput(this); company_name.select()">
定义函数renderInput
function renderInput(obj){
var opts = obj.options;
for(var i = 0 ; i < opts.length ; i ++){
if(opts[i].checked == "true" || opts[i].checked == "checked"){
document.getElementById("companyName").value = opts[i].text;
}
}
}

问题2:
不清楚你的需求,你干脆这样嘛,将输入框中的值使用js添加至下拉框中,再将添加进去的值选中不就OK了嘛

问题3:
你上面的select中的值不就是从数据库查出来的么?还需要怎么样啊?

[解决办法]
你的输入框是查找select的值还是从服务器从新匹配新数据?

如果是查找select里面的值,可以参考这个示例

select对象option的autocomplete自动完成

如果是从服务器下载数据,input添加onblur事件,blur的时候ajax将输入框的值发送到动态页,动态页查询数据库后返回html代码,如<select name="xxx"><option value="xxx">xx</option>...</select>这种,然后设置select容器的innerHTML就行了,注意要给select加一个容器
<label>
<select name="companyName" size="1" style="position:absolute; left: 237px; top: 85px; width: 220px; height: 20px;
clip: rect(0 237 18 200)" onchange="company_name.value=companyName.value; company_name.select()">
<%
for(Iterator iter = list.iterator(); iter.hasNext(); ) {
piv = (PropertyInfoView)iter.next();
%>
<option value="<%=piv.getId() %>"><%=piv.getCompanyName() %></option>
<%

%>
</select></label>
[解决办法]
ajax填充:
$.ajax({
type: "post",
url: "/yoblhtjfx/queryArea.action",
data: "parm="+val+"&jsoncallback=?",
dataType: "json",
success: function(json){
var list = json.list;
$("#inUnitAreaId").empty();
$("#inUnitAreaId").prepend("<option value=''>请选择</option>");
for(var i=0;i<list.length;i++)
{
$("#inUnitAreaId").append("<option value='"+list[i][0]+"'>"+list[i][1]+"</option>");
}
}

});

$("#projectId").val(val+"1");

动态时间查询:


$(function(){
if($.browser.msie)
{
$("#country").get(0).attachEvent("onpropertychange",function (o){
var countr = o.srcElement.value;
$.ajax({
type: "post",
url: "/yoblhtjfx/queryCountryAjax.action",
data: "country="+countr+"&jsoncallback=?",
dataType: "json",
success: function(json)
{
var tableHTML="";

tableHTML+="<table id='tabb1' border='1' width='100%'>";
tableHTML+="<tr>";
tableHTML+="<td style='text-align: center' >选择</td>";
tableHTML+="<td style='text-align: center' >区域码</td>";
tableHTML+="<td style='text-align: center' >国别名称</td>";
tableHTML+="</tr>";
var list = json.list;
for(var i=0;i<list.length;i++)
{
tableHTML+="<tr>";
tableHTML+="<td style='text-align: center'><input type='radio' name='radioo' value='"+list[i][1]+"' /></td>";
tableHTML+="<td style='text-align: center'>"+list[i][0]+"</td>";
tableHTML+="<td style='text-align: center'>"+list[i][1]+"</td>";
tableHTML+="</tr>";
}
tableHTML+="</table>";

$("#querycountrydiv").html(tableHTML);
}

});
});
}
});

热点排行