根据字段标签将值应用于表单字段

时间:2014-06-11 18:56:42

标签: jquery

我有一个表单字段,其标签为“广告系列来源”。

 <label id="tfa_249-L" for="tfa_249" class="label preField ">Campaign Source</label><br>
 <divclass="inputWrapper">
 <input type="text" id="tfa_49" name="tfa_249" value="" placeholder="" class="">
 </div>

基于该标签(“广告系列来源”),如何使用jQuery为此特定表单字段提供默认值?

虽然根据它的ID更容易定位字段,但我不会提前知道ID,而我知道标签并且可以自己设置。

提前致谢。

$('#tfa_249').val('<?php echo $_GET['utm_source']; ?>');

4 个答案:

答案 0 :(得分:2)

假设没有其他标签包含“广告系列来源”,请找到如下标签:

var lbl = $("label:contains('Campaign Source'));

然后获取它标记的输入的ID:

var inpid = lbl.attr('for');

并设置输入值:

$('#' + inpid).val("<?php echo htmlspecialchars($_GET['utm_source']); ?>");

答案 1 :(得分:1)

混合逗号......

你有

$('#tfa_249').val('<?php echo $_GET['utm_source']; ?>');

应该是

$('#tfa_249').val("<?php echo $_GET['utm_source']; ?>");

请记住,php代码必须在.php文件中执行。

答案 2 :(得分:0)

您可以使用:contains -

进行测试
if( $("label:contains('Campaign Source')") ) {
    var forInput = $("label:contains('Campaign Source')").attr('for')
    $("label:contains('Campaign Source')").next('.inputWrapper').find('input[name="'+ forInput +'"]').val("<?php echo htmlspecialchars($_GET['utm_source']); ?>");
}

答案 3 :(得分:0)

// Start by finding the label (based on text value)
$('label:contains("Campaign Source")')
  // grab the div next door
  .next('.inputWrapper')
  // then find the `<input>` within
  .find('input')
  // now assign its value
  .val('<?= $_GET['utm_source']; ?>');