programing

jQuery의 "val()"이(가) 작동하지 않습니다.

iphone6s 2023. 10. 4. 21:02
반응형

jQuery의 "val()"이(가) 작동하지 않습니다.

jQuery를 사용하여 숨겨진 필드의 값을 형태로 설정하려고 했지만 성공하지 못했습니다.

여기 문제를 설명하는 샘플 코드가 있습니다.입력 유형을 "text"로 유지하면 문제없이 작동합니다.그러나 입력 유형을 "숨김"으로 변경하면 작동하지 않습니다!

<html>

    <head>
        <script type="text/javascript" src="jquery.js">
        </script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("button").click(function() {
                    $("input:text#texens").val("tinkumaster");
                });
            });
        </script>
    </head>

    <body>
        <p>
            Name:
            <input type="hidden" id="texens" name="user" value="texens" />
        </p>
        <button>
            Change value for the text field
        </button>
    </body>

</html>

또한 입력 유형을 "텍스트"로 설정한 다음 입력 상자에 "display:none" 스타일을 사용하여 다음과 같은 해결 방법을 시도했습니다.그러나 이 또한 실패합니다! jQuery가 숨김 또는 보이지 않는 입력 필드를 설정하는 데 문제가 있는 것 같습니다.

무슨 생각 있어요?실제로 작동하는 해결책이 있습니까?

:text합니다인 합니다.hidden 다음을 더 또한 다음을 사용하는 것이 훨씬 더 효율적입니다.

$("#texens").val("tinkumaster");

ID 속성은 웹 페이지에서 고유해야 하며, 사용자가 가지고 있는 문제의 원인이 될 수 있으므로 사용자의 ID 속성을 확인해야 합니다. 더 복잡한 선택기를 지정하면 작업 속도가 느려지고 깔끔해 보이지 않습니다.

http://jsbin.com/elovo/edit, 의 예제 코드를 사용한 http://jsbin.com/elovo/2/edit 의 예제 코드는 http://jsbin.com/elovo/2/edit 입니다.

숨겨진 필드에 ID를 전달하기 때문에 숨겨진 필드의 값을 설정하는 데 문제가 있는 경우 다음과 같은 방법이 있습니다.

에.$("#hidden_field_id").val(id) 하다,o$("input[id=hidden_field_id]").val(id)가 다른지는 는 있습니다 어떤 차이가 있는지는 모르겠지만, 효과는 있습니다.

드디어 해결책을 찾았는데 간단한 방법입니다.

document.getElementById("texens").value = "tinkumaster";

매력적으로 작용합니다.jQuery가 왜 이것으로 돌아가지 않는지 알 수 없습니다.

저도 같은 문제가 있었습니다.이상하게도 구글 크롬과 아마도 다른 사람들은 (잘 모르겠다) 좋아하지 않았습니다.

$("#thing").val(0);

input type="hidden" id="thing" name="thing" value="1" />

(변경 없음)

$("#thing").val("0");

input type="hidden" id="thing" name="thing" value="1" />

(변경 없음)

그래도 되요!!!!

$("#thing").val("no");

input type="hidden" id="thing" name="thing" value="no" />

변화!!

$("#thing").val("yes");

input type="hidden" id="thing" name="thing" value="yes" />

변화!!

"끈"일 것임에 틀림없습니다.

$('input[name=hidden_field_name]').val('newVal');

둘 다 내게 도움이 되지 않았을 때

$('input[id=hidden_field_id]').val('newVal');

도 아니다

$('#hidden_field_id').val('newVal');

했다.

속성 서버 측면을 잡고 있고 값이 항상 업데이트되지 않았기 때문에 .val은 나에게 작동하지 않았습니다.그래서 나는 다음을 했습니다.

var counter = 0;
$('a.myClickableLink').click(function(event){
   event.preventDefault();
   counter++;

   ...
   $('#myInput').attr('value', counter);
}

누군가에게 도움이 되길 바랍니다.

사실, 이것은 계속되는 문제입니다.다운로드된 소스에 대해서는 Andy가 맞지만 .val(...)과 .attr('value',...)는 실제로 html을 수정하지 않는 것 같습니다.이것은 jquery 문제가 아닌 javascript 문제라고 생각합니다.만약 당신이 파이어버그를 사용했다면 당신도 같은 질문을 받았을 것입니다.수정된 값으로 양식을 제출하면 html은 변경되지 않습니다.수정된 양식(doing [form.html())의 인쇄 미리보기를 작성하려고 하다가 이 문제가 발생했습니다. 값 변경을 제외한 모든 변경 사항을 포함하여 모든 변경 사항을 정상적으로 복사합니다.그래서 내 모달 프린트 미리보기는 좀 쓸모가 없어요...제 해결책은 그들이 추가한 값을 포함하는 숨겨진 양식을 '구축'하거나, 미리보기를 독립적으로 생성하고 사용자가 수정할 때마다 미리보기를 수정하도록 하는 것일 수 있습니다.둘 다 최적이지만, 누군가가 가치 설정 동작이 (DOM에서 가정하는) html을 변경하지 않는 이유를 파악하지 않는 한 그렇게 해야 합니다.

저도 같은 문제를 겪고 있었는데, 무엇이 잘못되었는지 알게 되었습니다.HTML을 다음과 같이 정의했습니다.

<form action="url" method="post">
    <input type="hidden" id="email" />
<form>
<script>
    function onsomeevent()
    {
       $("#email").val("a@a.com");
    }
</script>

서버에서 양식 값을 읽으면 항상 전자 메일이 비어 있습니다.머리를 긁적이면서(그리고 수많은 검색을 한 후), 저는 그 실수가 양식/입력을 정확하게 정의하지 못하고 있다는 것을 깨달았습니다.입력을 수정하는 과정에서(다음과 같이) 매력적으로 작용했습니다.

<input type="hidden" id="email" name="email" />

다른 사람에게도 같은 문제가 있을 경우 이 스레드에 추가합니다.

저의 경우, 저는 val()의 매개 변수로 문자열이 아닌(정수)를 사용하고 있었는데, 이 매개 변수는 매우 간단합니다.

$("#price").val('' + price);

으로.val()저한테는 안 통했어요나는 사용해야만 했습니다..attr()온통. 경우 .또한 저는 다양한 입력 유형을 가지고 있었고 체크 박스와 선택 메뉴의 경우 꽤 명확해야 했습니다.

텍스트 필드 업데이트

$('#model_name').attr('value',nameVal);

파일 입력 옆에 이미지 업데이트

$('#img-avatar').attr('src', avatarThumbUrl);

부울 업데이트

if (isActive) {
    $('#model_active').attr('checked',"checked");
} else {
    $('#model_active').attr('checked', null) ;
}

업데이트 선택(숫자 또는 문자열 포함)

$('#model_framerate').children().each(function(i, el){
    var v = $(el).val();
    if (v === String(framerateVal)) { 
        $(el).attr('selected','selected');
    } else {
        $(el).attr('selected',null);
    }
}

여기 또 다른 차가 제 시간을 낭비해서, 저는 팁을 전달하려고 생각했습니다.가 준 필드가 다 고.[]및호트2정)($("#model.thefield[0]")내 숨겨진 필드를 찾지 못했을 겁니다 ID 이름을 했습니다.마침표와 괄호를 사용하지 않도록 ID 이름을 변경하면 선택기가 작동하기 시작했습니다..model_the_field_0그 대신 셀렉터는 잘 작동했습니다.

haml을 검색하는 경우 숨김 필드는 다음과 같이 숨겨진 필드에 값을 설정할 수 있습니다.

%input#forum_id.hidden

jquery에서 값을 문자열로 변환한 다음 jquery에서 특성 속성을 사용하여 추가하면 됩니다.이것이 다른 언어에서도 효과가 있기를 바랍니다.

$('#forum_id').attr('val',forum_id.toString());

ID 사용:

$('input:hidden#texens').val('tinkumaster');

클래스 사용 중:

$('input:hidden.many_texens').val('tinkumaster');

이 페이지에서 아무 것도 실제로 작동하지 않는 수많은 답변에 길을 잃은 후, 저는 제 경우에 어떻게 해야 하는지 알게 되었습니다.

인지 을 합니다.input선택자가 안하고 있었어할 수 폼 요소에 아이디가 없어서 셀렉터에 아이디를 사용할 수 없었습니다.설사 그랬다고 해도 효과가 없었을 거라고 확신합니다.

제 해결책은 이렇습니다.

$("[name=something]").val("something");

기본적으로 "something"이라는 이름의 요소를 선택합니다.한번 해보세요.

모든 것을 시도한 후, devtools는 ID를 변경했음을 보여줍니다. 이것은 효과가 있었습니다.

$("#form-field-{field_id}").value('free');
<javascript>


slots=''; hidden=''; basket = 0;

    cost_per_slot = $("#cost_per_slot").val();
    //cost_per_slot = parseFloat(cost_per_slot).toFixed(2)

    for (i=0; i< check_array.length; i++) {
        slots += check_array[i] + '\r\n';
        hidden += check_array[i].substring(0, 8) + '|';
        basket = (basket + parseFloat(cost_per_slot));
    }

    // Populate the Selected Slots section
    $("#selected_slots").html(slots);

    // Update hidden slots_booked form element with booked slots
    $("#slots_booked").val(hidden);     

    // Update basket total box
    basket = basket.toFixed(2);
    $("#total").html(basket);

get and set 아래의 구문을 사용하기만 하면 됩니다.

얻다

//Script 
var a = $("#selectIndex").val();

여기서 변수는 숨김 필드(selectindex)의 값을 유지합니다.

서버측

<asp:HiddenField ID="selectIndex" runat="server" Value="0" />

세트

var a =10;
$("#selectIndex").val(a);

이 문제로 어려움을 겪고 있는 다른 사람은 jQuery를 사용하여 이를 수행할 수 있는 매우 간단한 "인라인" 방법이 있습니다.

<input type="search" placeholder="Search" value="" maxlength="256" id="q" name="q" style="width: 300px;" onChange="$('#ADSearch').attr('value', $('#q').attr('value'))"><input type="hidden" name="ADSearch" id="ADSearch" value="">

그러면 onChange 이벤트를 사용하여 텍스트를 표시되는 입력에 입력할 때 숨겨진 필드의 값을 설정합니다.필드 값을 "고급 검색" 양식에 전달하고 사용자에게 검색 쿼리를 다시 입력하도록 강요하지 않는 경우(내 경우와 같이) 유용합니다.

언급URL : https://stackoverflow.com/questions/2979772/set-value-of-hidden-field-in-a-form-using-jquerys-val-doesnt-work

반응형