使用支持HTML5的新浏览器时(例如FireFox 4);
并且表单字段具有该属性required='required';
表格字段为空/空白;
然后点击提交按钮;
浏览器检测到"required"字段为空并且不提交表单;
而是浏览器显示一个提示,要求用户在该字段中键入文本.
现在,我有一组复选框,而不是单个文本字段,其中至少有一个复选框应由用户检查/选择.
如何required在此组复选框上使用HTML5 属性?(由于只需要检查其中一个复选框,我不能将该required属性放在每个复选框上)
PS.我正在使用simple_form,如果这很重要的话.
UPDATE
可以在HTML 5 multiple的属性是有帮助吗?有没有人用它来做类似我问题的事情?
这似乎是这个功能不是HTML5规范的支持: ISSUE-111:什么是输入@需要均值@type =复选框?
(问题状态:问题已被标记为关闭而没有偏见.)以下是解释.
这是一个老问题,但是想澄清一下,问题的初衷是能够在不使用Javascript的情况下完成上述操作 - 即使用HTML5方式.回想起来,我应该让"没有Javascript"更加明显.
我试图创建一个由两个带有插入填充的输入字段组成的登录表单,但这两个字段总是超出其父节点的边界; 问题源于添加的插入填充.可以采取哪些措施来纠正这个问题?
JSFiddle片段:http://jsfiddle.net/4x2KP/
注意:代码可能不是最干净的.例如,根本不需要封装文本输入的span元素.
#mainContainer {
line-height: 20px;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
background-color: rgba(0,50,94,0.2);
margin: 20px auto;
display: table;
-moz-border-radius: 15px;
border-style: solid;
border-color: rgb(40, 40, 40);
border-radius: 2px 5px 2px 5px / 5px 2px 5px 2px;
border-radius: 2px;
border-radius: 2px 5px / 5px;
box-shadow: 0 5px 10px 5px rgba(0,0,0,0.2);
}
.loginForm {
width: 320px;
height: 250px;
padding: 10px 15px 25px 15px;
overflow: hidden;
}
.login-fields > .login-bottom input#login-button_normal {
float: right;
padding: 2px 25px;
cursor: …Run Code Online (Sandbox Code Playgroud)我在文本域中有鬼文本,当你使用HTML5的占位符属性关注它们时会消失:
<input type="text" name="email" placeholder="Enter email"/>
Run Code Online (Sandbox Code Playgroud)
我想使用相同的机制在textarea中包含多行占位符文本,可能是这样的:
<textarea name="story" placeholder="Enter story\n next line\n more"></textarea>
Run Code Online (Sandbox Code Playgroud)
但是那些\n出现在文本中并且不会引起换行...有没有办法让多行占位符?
更新:我使用它的唯一方法是使用 jQuery Watermark插件,该插件在占位符文本中接受HTML:
$('.textarea_class').watermark('Enter story<br/> * newline', {fallback: false});
Run Code Online (Sandbox Code Playgroud) 这是使用form_kwargs在Django 1.9中修复的.
我有一个看起来像这样的Django表单:
class ServiceForm(forms.Form):
option = forms.ModelChoiceField(queryset=ServiceOption.objects.none())
rate = forms.DecimalField(widget=custom_widgets.SmallField())
units = forms.IntegerField(min_value=1, widget=custom_widgets.SmallField())
def __init__(self, *args, **kwargs):
affiliate = kwargs.pop('affiliate')
super(ServiceForm, self).__init__(*args, **kwargs)
self.fields["option"].queryset = ServiceOption.objects.filter(affiliate=affiliate)
Run Code Online (Sandbox Code Playgroud)
我用这样的方式称这个形式:
form = ServiceForm(affiliate=request.affiliate)
Run Code Online (Sandbox Code Playgroud)
request.affiliate登录用户在哪里.这按预期工作.
我的问题是我现在想把这个单一的表单变成一个formset.我无法弄清楚的是,在创建formset时,我如何将联盟信息传递给各个表单.根据文档制作一个formset,我需要做这样的事情:
ServiceFormSet = forms.formsets.formset_factory(ServiceForm, extra=3)
Run Code Online (Sandbox Code Playgroud)
然后我需要像这样创建它:
formset = ServiceFormSet()
Run Code Online (Sandbox Code Playgroud)
现在,我如何通过这种方式将affiliate = request.affiliate传递给单个表单?
我的问题类似于这个, 但对于Rails应用程序.
我有一个带有一些单选按钮的表单,并希望将标签与它们相关联.的label形式辅助只需表单字段作为参数,但在这种情况下,我有一个单一的表单字段多个单选按钮.我看到的唯一方法是手动创建标签,硬编码为单选按钮自动生成的ID.有谁知道更好的方法吗?
例如:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
Run Code Online (Sandbox Code Playgroud)
这会产生类似于:
<label for="message_contactmethod">Contactmethod</label>
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"> Email
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> SMS
Run Code Online (Sandbox Code Playgroud)
我想要的是:
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"><label for="message_contactmethod_email">Email</label>
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> <label for="message_contactmethod_sms">SMS</label>
Run Code Online (Sandbox Code Playgroud) 这让我疯了,我在枪下,无法再花上一整天的时间.
我试图在组件中手动设置一个控制值('dept'),它只是不工作 - 甚至新值记录到控制台正常.
这是FormBuilder实例:
initForm() {
this.form = this.fb.group({
'name': ['', Validators.required],
'dept': ['', Validators.required],
'description': ['', Validators.required],
});
}
Run Code Online (Sandbox Code Playgroud)
这是接收选定部门的事件处理程序:
deptSelected(selected: { id: string; text: string }) {
console.log(selected) // Shows proper selection!
// This is how I am trying to set the value
this.form.controls['dept'].value = selected.id;
}
Run Code Online (Sandbox Code Playgroud)
现在,当表单提交并且我注销时,this.form该字段仍然是空白的!我已经看过其他用户,updateValue()但这是beta.1,我不认为这是调用控件的有效方法.
我也试图打电话updateValueAndValidity()没有成功:(.
我只是ngControl="dept"在表单元素上使用,就像我正在使用表单的其余部分,但它是一个自定义指令/组件.
<ng-select
[data]="dept"
[multiple]="false"
[items]="depts"
(selected)="deptSelected($event)" <!-- This is how the value gets to me -->
[placeholder]="'No Dept Selected'"></ng-select>
Run Code Online (Sandbox Code Playgroud) 我有一个带有适当标签的字段,我可以用水豚填写没有问题:
fill_in 'Your name', with: 'John'
Run Code Online (Sandbox Code Playgroud)
我想在填写它之前检查它的值,但无法弄明白.
如果我fill_in在以下行之后添加:
find_field('Your name').should have_content('John')
Run Code Online (Sandbox Code Playgroud)
该测试失败,尽管之前的填充工作正如我通过保存页面验证的那样.
我错过了什么?
有没有办法(使用属性标志或类似的东西)启用禁用提交数据的表单字段?
或者,如果那是不可能的,有没有办法阻止字段使用css或任何其他属性进行编辑而不是隐藏它们?
我的特殊情况是一个数据集的标识符,应该以表格形式显示(不可编辑) - 如果没有更好的解决方案,我想我会使用一个隐藏字段,除了被禁用的字段以保持实际显示它的已禁用值.
在未指定方法的情况下提交HTML表单时,使用的默认HTTP方法是什么?GET还是POST?
这种行为是否在HTML标准之间发生了变化?
如果可能,请引用W3C标准文档.
我使用这种语法发布文件以及一些参数:
curl -v -include --form "key1=value1" --form upload=localfilename URL
Run Code Online (Sandbox Code Playgroud)
该文件大小约为500K.首先,我看到发送端的内容长度为254.之后服务器响应的内容长度为0.我哪里错了?
这是命令的完整跟踪.
* Couldn't find host xxx.xxx.xxx.xxx in the _netrc file; using defaults
* About to connect() to xxx.xxx.xxx.xxx port yyyy (#0)
* Trying xxx.xxx.xxx.xxx...
* Adding handle: conn: 0x4b96a0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x4b96a0) send_pipe: 1, recv_pipe: 0
* Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) port yyyy (#0)
* POST /zzzzzz/UploadFile HTTP/1.1
* User-Agent: curl/7.32.0
* Host: xxx.xxx.xxx.xxx:yyyy …Run Code Online (Sandbox Code Playgroud) forms ×10
html ×3
css ×2
html5 ×2
angular ×1
capybara ×1
checkbox ×1
components ×1
curl ×1
django ×1
django-forms ×1
input ×1
placeholder ×1
post ×1
python ×1
rspec ×1
textarea ×1
validation ×1
width ×1