
jquery AJAX将数据放在表单
$.ajax({url:Url,type:'POST',async:false,dataType:'json',success:function(root){在这里有没有...
$.ajax( {
url:Url,
type : 'POST',
async: false,
dataType : 'json',
success : function(root) {
在这里有 没有什么号办法,让去出来的数据去from表单找name根后台属性名一样的,就把后台的值付给这个表单上
$("#d").val(root.useDTO.username);
如果按上面这么写要写好多代码,要定义很多ID,有没有什么办法可以直接将这些值付给这个表单,减少代码量,哪怕写一个公共类出来也好。。。
}
}); 展开
url:Url,
type : 'POST',
async: false,
dataType : 'json',
success : function(root) {
在这里有 没有什么号办法,让去出来的数据去from表单找name根后台属性名一样的,就把后台的值付给这个表单上
$("#d").val(root.useDTO.username);
如果按上面这么写要写好多代码,要定义很多ID,有没有什么办法可以直接将这些值付给这个表单,减少代码量,哪怕写一个公共类出来也好。。。
}
}); 展开
2个回答
展开全部
读了很久,终于理解了你的想法。在form中有很多input或select,你想通过一次性的将给form赋值等价于给下面的许多input或select赋值。你真是太有才了,作为程序员,谁不愿意少写两句。我觉得你这个提议太好了,强烈建议写入下一个版本的jquery。
思考了一下,觉得也不是不能实现,简单写了一个jquery扩展方法,不完善,但可以基本实现你的想法。下面是demo,在表单中有两个input和一个select,可以用一句实现对他们三个的赋值。这句就是:$("#abc").setform({ t1: "3456", t2: "4444", s1: "option2" });
demo:
<form id="abc" name="abc" action="" method="post">
<input id="t1" name="t1" type="text" />
<input id="t2" name="t2" type="text" />
<select id="s1" name="s1">
<option value="option1">option1</option>
<option value="option2">option2</option>
</select>
<input id="Submit1" type="submit" value="submit" />
</form>
<script>
$(function ($) {
$("#abc").setform({ t1: "3456", t2: "4444", s1: "option2" });
});
//扩展一个jquery的setform方法
(function ($) {
$.fn.setform = function (jsonValue) {
var obj=this;
$.each(jsonValue, function (id, ival) {obj.find("#" + id).val(ival); })
}
})(jQuery)
</script>
思考了一下,觉得也不是不能实现,简单写了一个jquery扩展方法,不完善,但可以基本实现你的想法。下面是demo,在表单中有两个input和一个select,可以用一句实现对他们三个的赋值。这句就是:$("#abc").setform({ t1: "3456", t2: "4444", s1: "option2" });
demo:
<form id="abc" name="abc" action="" method="post">
<input id="t1" name="t1" type="text" />
<input id="t2" name="t2" type="text" />
<select id="s1" name="s1">
<option value="option1">option1</option>
<option value="option2">option2</option>
</select>
<input id="Submit1" type="submit" value="submit" />
</form>
<script>
$(function ($) {
$("#abc").setform({ t1: "3456", t2: "4444", s1: "option2" });
});
//扩展一个jquery的setform方法
(function ($) {
$.fn.setform = function (jsonValue) {
var obj=this;
$.each(jsonValue, function (id, ival) {obj.find("#" + id).val(ival); })
}
})(jQuery)
</script>
更多追问追答
追问
那单选按钮怎么办?多个单选按钮
追答
补充了一下,支持多选和单选按钮
option1
option2
单选一
单选二
单选三
单选四
多选一
多选二
$(function ($) {
$("#abc").setform({ t1: "3456", t2: "12345", s1: "option2",ra1:"单选三",ch1:"多选二" });
});
//扩展一个jquery的setform方法
(function ($) {
$.fn.setform = function (jsonValue) {
var obj = this;
$.each(jsonValue, function (name, ival) {
var $oinput = obj.find("input:[name=" + name + "]");
if ($oinput.attr("type")== "radio" || $oinput.attr("type")== "checkbox") {
$oinput.each(function(){
if($(this).val()==ival)
$(this).attr("checked", "checked");
});
}
else
{
obj.find("[name="+name+"]").val(ival);
}
});
}
})(jQuery)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询