在Django表单中,如何将字段设置为只读(或禁用)?
当表单用于创建新条目时,应启用所有字段 - 但是当记录处于更新模式时,某些字段必须是只读的.
例如,在创建新Item模型时,所有字段都必须是可编辑的,但在更新记录时,有没有办法禁用该sku字段以使其可见,但无法编辑?
class Item(models.Model):
sku = models.CharField(max_length=50)
description = models.CharField(max_length=200)
added_by = models.ForeignKey(User)
class ItemForm(ModelForm):
class Meta:
model = Item
exclude = ('added_by')
def new_item_view(request):
if request.method == 'POST':
form = ItemForm(request.POST)
# Validate and save
else:
form = ItemForm()
# Render the view
Run Code Online (Sandbox Code Playgroud)
班级ItemForm可以重复使用吗?ItemForm或者Item模型类需要进行哪些更改?我是否需要编写另一个类" ItemUpdateForm"来更新项目?
def update_item_view(request):
if request.method == 'POST':
form = ItemUpdateForm(request.POST)
# Validate and save
else:
form = ItemUpdateForm()
Run Code Online (Sandbox Code Playgroud) 我创建了一个使用标记框下拉列表的Web应用程序.这适用于除Chrome浏览器(版本21.0.1180.89)以外的所有浏览器.
尽管input字段和form字段都具有该autocomplete="off"属性,但Chrome 仍然会显示该字段的先前条目的下拉历史记录,这会删除标记框列表.
我想清除表单中的所有输入和textarea字段.当使用类的输入按钮时,它的工作方式如下reset:
$(".reset").bind("click", function() {
$("input[type=text], textarea").val("");
});
Run Code Online (Sandbox Code Playgroud)
这将清除页面上的所有字段,而不仅仅是表单中的字段.我的选择器如何只是实际重置按钮所在的形式?
是否有一种简单的单行方式来获取表单的数据,如果它是以经典的HTML方式提交的话?
例如,在:
<form>
<input type="radio" name="foo" value="1" checked="checked" />
<input type="radio" name="foo" value="0" />
<input name="bar" value="xxx" />
<select name="this">
<option value="hi" selected="selected">Hi</option>
<option value="ho">Ho</option>
</form>
Run Code Online (Sandbox Code Playgroud)
日期:
{
"foo": "1",
"bar": "xxx",
"this": "hi"
}
Run Code Online (Sandbox Code Playgroud)
这样的事情太简单了,因为它没有(正确地)包括textareas,选择,单选按钮和复选框:
$("#form input").each(function () {
data[theFieldName] = theFieldValue;
});
Run Code Online (Sandbox Code Playgroud) 我想知道以下两个代码片段之间的区别是什么:
<label>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
Run Code Online (Sandbox Code Playgroud)
和
<label for='theinput'>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
Run Code Online (Sandbox Code Playgroud)
我确定当你使用一个特殊的JavaScript库时它会有所作为,但除此之外,它是否验证HTML或其他原因需要?
我想问一个关于这个的问题multipart/form-data.在HTTP标头中,我发现了Content-Type: multipart/form-data; boundary=???.
是???免费的用户定义?或者它通常来自HTML?我可以定义??? = abcdefg吗?
我正在使用jQuery和Ajax为我的表单提交数据和文件,但我不确定如何以一种形式发送数据和文件?
我目前对这两种方法的做法几乎相同,但数据收集到数组的方式不同,数据使用.serialize();但文件使用= new FormData($(this)[0]);
是否可以将两种方法结合起来,以便能够通过Ajax以一种形式上传文件和数据?
数据jQuery,Ajax和html
$("form#data").submit(function(){
var formData = $(this).serialize();
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
<form id="data" method="post">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<button>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
文件jQuery,Ajax和html
$("form#files").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data) …Run Code Online (Sandbox Code Playgroud) 如何使用CSS选择器定位"text"类型的输入字段?
我有一个带有标准复位按钮的表格,因此编码:
<input type="reset" class="button standard" value="Clear" />
Run Code Online (Sandbox Code Playgroud)
麻烦的是,表示表单属于多阶段排序,因此如果用户填写一个阶段然后稍后返回,则单击"清除"按钮时,不会重置各个字段的"记住"值.
我认为附加一个jQuery函数来遍历所有字段并"手动"清除它们就可以了.我已经在表单中使用了jQuery,但我只是起步速度,所以我不知道如何解决这个问题,除了通过ID单独引用每个字段,这看起来效率不高.
TIA提供任何帮助.
使用jQuery 动态创建隐藏输入表单字段的最简单方法是什么?
forms ×10
html ×5
jquery ×5
javascript ×3
ajax ×1
autocomplete ×1
css ×1
django ×1
field ×1
hidden-field ×1
html-input ×1
http ×1
input ×1
label ×1
readonly ×1
reset ×1