标题说明了一切.有时似乎Name和x:Name属性是可以互换的.
那么,它们之间的确切差异是什么,何时优先使用一个而不是另一个?
以错误的方式使用它们是否有任何性能或内存影响?
好吧,我花了很长时间才发现JQuery表单验证插件仅适用于具有"name"属性的字段.
无论如何,我用它来制作所需的所有字段.
我的问题是,在某些时候,我有一个文本输入
<div id='choices'>
<input type='text' />
</div>
<a href='#' id='add-choice' >Add input </a>
Run Code Online (Sandbox Code Playgroud)
用户可以根据需要添加任意数量的文本输入:
$("#add-choice").live("click",function(){
$("#choices").append("<input type='text' /><br>");
});
Run Code Online (Sandbox Code Playgroud)
我也希望这些新领域也是必需的.即使我给第一个输入命名.我应该如何动态添加新输入?
有没有办法在不使用名称attr的情况下使用插件,还是有其他解决方案?
如果浏览器没有指定name属性,它是否可以保证不发送输入元素?
例如,我们可以假设POST下面的表格不会发送信用卡号码吗?
<form action="/process" method="post">
<input id="credit-card-number" type="text">
<input type="submit" name="commit" value="Go">
</form>
Run Code Online (Sandbox Code Playgroud) 是的,所以我正在关注一个教程.确切地说,这是一个.它提供的一些代码是这样的:
<TextBlock Margin="2" Foreground="Red" FontWeight="Bold"
Text="{Binding ElementName=AddressBox,
Path=(Validation.Errors),
Converter={StaticResource eToMConverter}}" />
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它结合到TextBox的验证错误,那TextBox的x:Name是AddressBox.现在,我的问题是:我Window有点像这个.它也只有一个TextBox.但是,如果可能的话,我宁愿不使用Names或x:Names.是否可以绑定到另一个Control的Validation.Errors不在于控制被命名,并控制是该类型的唯一一个Control在同一Window?与TextBox...处于同一水平ListBox.
我对JQuery验证插件行为有点困惑.
如果我有以下JQuery:
$('#form1').validate({
/* other validation */
});
$('#txt1').rules("add",
{
required: true,
messages: { required: 'This is required!' }
});
Run Code Online (Sandbox Code Playgroud)
和以下文本输入,具有id但没有name属性:
<input type="text" id="txt1"/>
Run Code Online (Sandbox Code Playgroud)
文本框中不会弹出所需的消息.
但是,如果我添加名称属性:
<input type="text" id="txt1" name="anything"/>
Run Code Online (Sandbox Code Playgroud)
它验证它很好.
这是为什么?由于我在ID选择器上使用规则("添加",规则)方法,为什么它需要name属性才能将规则与元素相关联?感谢您的任何见解!
这是问题所在:
我们使用的电子商务系统为每个购买的产品生成一个订单项.它为行项目的数量输入提供名称属性"qty0","qty1","qty2"等,因为行项目沿着页面向下.
我需要检查这些qtyX输入的有效性,但我不知道如何将name属性作为另一个属性(如类)的相对属性传递,或者将正则表达式传递给validate插件以查找所有数量字段.
这是验证码:
var validator = $("#formName").validate({
rules: {
qty: { customMethod: true}// qty
},//rules
messages: {
qty: {customMethod: "NOPE"}
},
errorPlacement: function(error, element) {
error.appendTo("#itemQuantityError");
},
});
Run Code Online (Sandbox Code Playgroud)
以下是生成的输入示例:
<td ><input name="qty1" value="6" size="5"></td>
Run Code Online (Sandbox Code Playgroud)
谢谢!!
好的,所以我的标题可能有点令人困惑,但让我解释一下我的情况:
我有一个非常大的形式有很多领域,一些是必需的,一些不是.我用JS验证,但后来我也在用PHP验证服务器端.
我要求用户提出的一个问题是"标题名称".现在,标题名称的名称属性为"header1".用户可以选择在表单上添加更多标题字段.因此,如果他们单击一个按钮,则会添加另一个名称属性为"headerx"的"标题名称X".
得到它了?现在,问题是,通常这些头字段不是必需的,但我确实有条件,它们必须提供至少一个Header字段.因此,他们可以提供100,他们可以提供2,他们可能提供1,但如果他们不提供任何,那么验证应该失败.
我想不出在PHP中检查这个的好方法.我知道你的拳头想法只是检查$ _POST是否包含任何内容.但是不会起作用,因为它们是这个表单中的多个其他字段,这些字段与这些Headers无关.所以我不能只是简单地检查$ _POST是否包含某些东西,因为它总是会.
有没有办法我可以将isset()与正则表达式结合起来?就像isset一样($ _ POST ['header {\ d +}'].这就像标题一样,跟在它后面至少有一位数.
谢谢您的帮助!
编辑:哦,如果这已经不够了,标题字段的数量是无限的.所以我不能只循环遍历所有可能的"标题",因为这显然是一个无限循环.
下面这段代码将div添加到另一个div.前一个div包含一个名为"inputName []"的输入元素.我猜这是一个自动递增的数组,因为添加了更多的div.如何输出该数组的长度?我尝试了console.log它(如下所示),但它不起作用.
我得到的错误是"Uncaught TypeError:无法读取未定义的属性'长度'"
我该怎么做才能解决这个问题?
$("#buttonid4").on("click", function() {
var string1 = "<div class='eight columns'>
<input type='text' size='76' placeholder='paste URL here' name='inputName[]'> </div>";
$("#deleteandadd").append(string1);
console.log(inputName.length);
});
Run Code Online (Sandbox Code Playgroud)